본문으로 건너뛰기

인터페이스: RunRecord

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:106

단일 실행을 위한 내구성 있는 기록입니다.

속성

cancelRequested?

optional cancelRequested?: boolean;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:151

명시적인 대역 외 취소로 설정되며, 단순한 클라이언트 연결 해제와 구분해야 합니다 (둘 다 동일한 TCP 종료를 발생시키므로 연결 해제만으로 의도를 추론할 수 없습니다).

requestRunCancel이 기록하고 wasCancelRequested가 읽습니다(둘 다 ../cancel에 있음). 의도적으로 상태가 아닙니다. 의도를 기록하는 것은 실행이 중지된 것과 같지 않으며, 실행이 중지된 시점은 driver만 알 수 있습니다.


detachedSince?

optional detachedSince?: number;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:141

마지막 뷰어가 연결 해제된 시점의 Epoch 밀리초이며, 누군가 연결되어 있으면 없습니다. 연결 해제로 에이전트가 계속 실행되고 샌드박스가 해제되지 않을 때 withSandbox의 연결 해제 경로(@tanstack/ai-sandboxmiddleware.ts에 있는 onAbort)가 sandboxKey와 함께 기록합니다. 백엔드는 이 필드를 왕복 처리해야 합니다. listReclaimable이 이 필드에 의존하며, @tanstack/ai-sandboxreapDetachedRuns가 이 필드가 표시하는 후보를 정리합니다(해당 메서드의 문서 주석 참조).


driverEpoch?

optional driverEpoch?: number;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:161

실행 driver를 위한 단조 증가 펜싱 토큰입니다. 실행을 성공적으로 클레임한 각 호스트가 증가시키므로(@tanstack/ai-sandboxwithRunClaim 참조), 대체된 호스트는 저장된 값과 자신이 보유한 값을 비교하여 패배했음을 확인할 수 있습니다.

잠금만으로는 이를 제공할 수 없습니다. 잠금은 승자에게 승리했음을 알리지만 패자에게 읽을 값을 제공하지 않기 때문입니다. 한 번도 클레임되지 않은 실행에는 없습니다.


error?

optional error?: RunError;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:120


finishedAt?

optional finishedAt?: number;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:119


runId

runId: string;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:107


sandboxKey?

optional sandboxKey?: string;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:131

샌드박스에서 실행될 때 이 실행이 바인딩된 복합 샌드박스 키입니다. 이후의 회수자가 키를 다시 계산하지 않고 해제할 샌드박스를 식별할 수 있도록 기록합니다. 연결 해제로 샌드박스를 삭제하지 않고 실행이 분리된 상태로 남을 때 withSandbox의 연결 해제 경로(@tanstack/ai-sandboxmiddleware.ts에 있는 onAbort)가 detachedSince와 동시에 기록합니다. 백엔드는 이 필드를 왕복 처리해야 합니다. 최종적으로 누가 읽는지는 아래의 listReclaimable을 참조하세요.


startedAt

startedAt: number;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:118


status

status: RunStatus;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:117


threadId

threadId: string;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:116

이 실행이 속한 대화이며, Scope.threadId입니다.

생성 작업(대화가 없는 일회성 generate() 호출)은 threadId = requestId로 위장하여 이 레코드를 재사용해서는 안 됩니다. 별도의 작업 저장소가 필요합니다. 현재 withGenerationPersistence가 정확히 그렇게 하며 자신을 임시방편으로 규정하므로 이를 복사하지 마세요.


usage?

optional usage?: TokenUsage<ProviderUsageDetails>;

정의 위치: packages/ai/src/activities/chat/middleware/run-store.ts:121