워크플로 개념
워크플로 개념
Agent Framework의 워크플로는 코드·에이전트·상태·이벤트·사람 입력을 조율하는 명시적이고 검사 가능한 실행 경로를 정의합니다. 프레임워크는 같은 워크플로 실행 모델 위에서 함수형 API와 그래프 기반 API를 모두 제공해요.
워크플로 API
모든 SDK가 그래프 기반 워크플로를 지원합니다. Python은 추가로 실험적인 함수형 워크플로 API를 제공하죠.
::: zone pivot="programming-language-csharp"
.NET SDK는 그래프 기반 WorkflowBuilder API를 사용합니다. 타입이 있는 실행기를 엣지와 조건으로 연결하고, fan-out·fan-in 실행을 지원하며, 워크플로와 실행기 이벤트를 발생시키고, 슈퍼스텝(superstep) 경계에서 진행 상황을 체크포인트로 저장합니다. 호환되는 워크플로는 표준 에이전트 인터페이스로 AsAIAgent()로 노출할 수도 있어요.
- 워크플로 빌더와 실행에서 .NET 워크플로 그래프를 만들고 실행하는 법을 설명합니다.
- 실행기(Executors), 엣지(edges), 이벤트(events), 상태 관리(state)가 그래프 런타임 기본 요소를 다룹니다.
::: zone-end
::: zone pivot="programming-language-python"
- 함수형 워크플로 API는 Python 함수와 네이티브 제어 흐름을 사용합니다.
- 워크플로 빌더와 실행은 타입 검증된 워크플로 그래프를 구성하고 실행합니다.
두 API 모두 관찰 가능한 워크플로 결과는 동일하게 만들어냅니다. 표현하려는 실행 모델에 맞는 API를 고르면 돼요.
함수형(@workflow) |
그래프(WorkflowBuilder) |
|
|---|---|---|
| 제어 흐름 | 네이티브 Python(if, 루프, asyncio.gather) |
엣지와 조건 |
| 적합한 경우 | 순차 파이프라인, 커스텀 루프, 임시 병렬 처리 | 고정 그래프, fan-out/fan-in, 타입 검증된 메시지 라우팅 |
| 병렬성 | asyncio.gather |
병렬 엣지 그룹과 슈퍼스텝 실행 |
| 관찰 가능성 | @step으로 단계별 이벤트 |
실행기별 이벤트 |
| 사람 개입 | ctx.request_info() |
RequestInfoExecutor |
| 체크포인트 | @step별 결과 캐싱 |
슈퍼스텝 경계 체크포인트 |
| 에이전트 래핑 | FunctionalWorkflow의 .as_agent() |
Workflow의 .as_agent() |
::: zone-end
::: zone pivot="programming-language-go"
Go SDK는 그래프 기반 workflow.NewBuilder API를 사용합니다. 바인딩된 실행기를 엣지·조건·fan-out·fan-in 그룹으로 연결한 뒤, inproc.Default 같은 실행 환경을 통해 그래프를 돌립니다. 에이전트 지향 워크플로는 표준 에이전트 인터페이스로 agentworkflow.New(...)로 노출할 수 있어요.
- 워크플로 빌더와 실행에서 Go 워크플로 그래프를 만들고 실행하는 법을 설명합니다.
- 실행기(Executors), 엣지(edges), 이벤트(events), 상태 관리(state)가 그래프 런타임 기본 요소를 다룹니다.
::: zone-end
그래프와 런타임 모델
- 실행기(Executors)는 입력을 받아 작업을 수행하고 출력을 내보냅니다.
- 엣지(Edges)는 실행기 사이의 값을 라우팅합니다.
- 이벤트(Events)는 워크플로 생명주기와 실행 활동을 드러냅니다.
- 상태 관리(State)는 지속형(durable) 및 실행 범위 워크플로 상태를 통제합니다.
고급 실행
- 에이전트 실행기는 에이전트를 워크플로 그래프에 통합합니다.
- 워크플로 실행 모드는 스트리밍 및 비스트리밍 실행을 설명합니다.
- 리셋 가능한 실행기는 실행 사이에 리셋되는 실행기를 다룹니다.
- 서브워크플로는 더 큰 그래프 안에서 워크플로를 실행기로 구성합니다.
체크포인트, 사람 개입, 시각화, 오케스트레이션 같은 기능 중심 가이드는 워크플로 기능을 참고하세요.
다음 단계
::: zone pivot="programming-language-csharp"
[!div class="nextstepaction"] 워크플로 빌드하고 실행하기
::: zone-end
::: zone pivot="programming-language-python"
[!div class="nextstepaction"] 워크플로 API 고르기
::: zone-end
::: zone pivot="programming-language-go"
[!div class="nextstepaction"] 워크플로 빌드하고 실행하기
::: zone-end