Run.timeTravelStream()
그만큼.timeTravelStream()메서드는 스트리밍 이벤트를 사용하여 특정 단계부터 시작하는 Workflow를 다시 실행합니다. 각 단계의 진행 상황에 대한 완전한 가시성을 유지하면서 시간 여행 실행 중에 실시간 업데이트를 받을 수 있습니다.
사용예사용예에 대한 직접 링크
const run = await workflow.createRun()
const output = run.timeTravelStream({
step: 'step2',
inputData: { value: 10 },
})
// Process events as they arrive
for await (const event of output.fullStream) {
console.log(event.type, event.payload)
}
// Get the final result
const result = await output.result
매개변수매개변수에 대한 직접 링크
모든 매개변수는 Run.timeTravel()과 동일합니다. 자세한 매개변수 문서는 timeTravel 레퍼런스를 참조하세요.
보고보고에 대한 직접 링크
output:
WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>
스트림과 결과 Promise를 모두 포함하는 객체입니다.
output.fullStream:
ReadableStream<WorkflowStreamEvent>
실행 진행에 따라 Workflow 이벤트를 방출하는 읽기 가능한 스트림입니다.
output.result:
Promise<WorkflowResult<TState, TInput, TOutput, TSteps>>
최종 Workflow 실행 결과로 이행되는 Promise입니다.
output.traceId?:
string
Tracing이 활성화된 경우 이 실행과 연결된 Trace ID입니다.
이벤트 스트리밍이벤트 스트리밍에 대한 직접 링크
스트림은 실행 중에 Workflow 이벤트를 내보냅니다.
workflow-step-start: 단계가 실행을 시작할 때 발생합니다.workflow-step-finish: 단계가 성공적으로 완료되면 발생합니다.workflow-step-error: 단계에서 오류가 발생하면 발생합니다.workflow-step-suspended: 단계가 일시중단될 때 발생합니다.- 단계 유형(Agent, Tool 등)에 따른 추가 이벤트
확장된 사용 예확장된 사용 예에 대한 직접 링크
시간 여행 중 이벤트 처리시간 여행 중 이벤트 처리에 대한 직접 링크
const run = await workflow.createRun()
const output = run.timeTravelStream({
step: 'step2',
inputData: { value: 10 },
})
for await (const event of output.fullStream) {
switch (event.type) {
case 'workflow-step-start':
console.log(`Starting step: ${event.payload.stepName}`)
break
case 'workflow-step-finish':
console.log(`Completed step: ${event.payload.stepName}`)
break
case 'workflow-step-error':
console.error(`Error in step: ${event.payload.stepName}`, event.payload.error)
break
}
}
const result = await output.result
console.log('Time travel completed:', result)
맥락이 있는 시간 여행 스트림맥락이 있는 시간 여행 스트림에 대한 직접 링크
const output = run.timeTravelStream({
step: 'step2',
context: {
step1: {
status: 'success',
payload: { value: 0 },
output: { step1Result: 2 },
startedAt: Date.now(),
endedAt: Date.now(),
},
},
})
for await (const event of output.fullStream) {
// Handle events
console.log(event)
}
const result = await output.result
중첩된 Workflow를 사용한 시간 여행 스트림중첩된 Workflow를 사용한 시간 여행 스트림에 대한 직접 링크
const output = run.timeTravelStream({
step: ['nestedWorkflow', 'step3'],
inputData: { value: 10 },
nestedStepsContext: {
nestedWorkflow: {
step2: {
status: 'success',
payload: { step1Result: 2 },
output: { step2Result: 3 },
startedAt: Date.now(),
endedAt: Date.now(),
},
},
},
})
for await (const event of output.fullStream) {
console.log(event.type, event.payload)
}
const result = await output.result
메모메모에 대한 직접 링크
- 시간 이동 실행이 완료되거나 오류가 발생하면 스트림이 자동으로 닫힙니다.
- Workflow가 계속 실행되는 동안 스트림의 이벤트를 처리할 수 있습니다.
resultPromise는 모든 단계가 완료된 후에만 이행됩니다.- 스트림 이벤트는 일반 Workflow 스트리밍과 동일한 형식을 따릅니다.
- 시간 이동 스트리밍은 영구 Workflow 스냅샷에 의존하므로 스토리지를 구성해야 합니다.