10. 서브에이전트 위임 규격 (Subagent Delegation)
에이전트가 하위 에이전트(Task/Agent)를 생성하여 작업을 위임하는 구조를 정의한다.
10.1. 서브에이전트 시작
tool.invoke.request에서 tool_name: "Task" 또는 tool_name: "Agent"를 사용하며, input에 서브에이전트 설정을 포함한다:
{
"type": "tool.invoke.request",
"payload": {
"invocation_id": "subagent-uuid-here",
"tool_name": "Task",
"input": {
"description": "String (필수, 서브에이전트 임무 설명)",
"prompt": "String (필수, 서브에이전트에게 전달할 프롬프트)",
"allowed_tools": ["String (선택, 서브에이전트 허용 도구 목록)"],
"model": "String (선택, 사용할 모델)"
}
}
}
10.2. 서브에이전트 출력
서브에이전트의 모든 출력은 부모 에이전트의 세션 내에서 tool.invoke.stream으로 중계되거나, 완료 시 tool.invoke.result(output_type: agent_result)로 최종 결과가 보고된다.
서브에이전트의 중간 이벤트를 마스터에 직접 노출하려면, 각 프레임의 metadata에 위임 체인을 기록한다:
{
"metadata": {
"delegation_chain": [
{
"agent_id": "String (부모 에이전트 식별자)",
"invocation_id": "String (위임 호출 ID)"
}
]
}
}