다중 에이전트 팀을 위한 개방형 스키마 구축과 배운 점
출처: Dev.to
에이전트 팀을 구축하는 것은 생각보다 더 어렵습니다. 각 에이전트는 정의된 역할을 가지고 있으며, 서로 다른 모델을 실행할 수도 있습니다. 구축한 뒤에는 정의가 사용한 플랫폼에 고정됩니다. 다른 런타임이나 벤더로 이동하면 처음부터 다시 작성해야 합니다.
모든 프로젝트는 같은 구조를 재현합니다. 휴대성이 없습니다.
그래서 우리는 휴대성을 갖춘 것을 만들었습니다.
에이전트를 조합해 작업을 완수할 때, 대부분의 프레임워크가 스키마 수준에서 다루지 않는 질문이 필요합니다:
- 이 에이전트는 누구에게 보고하나요?
- 이 에이전트가 시작하기 전에 무엇이 완료되어야 하나요?
- 이 에이전트의 역할은 무엇이며, 어떤 모델이 가장 적합한가요?
명시적인 답변 없이면, 프롬프트에 암묵적인 구조가 반영됩니다. 이는 작동하다가 안 될 때까지 계속됩니다.
에이전트는 네 개의 필드(key, name, title, role)를 필요로 합니다. 다음은 모델별로 다른 에이전트를 갖춘 최소한의 유효 팀 정의입니다:
{
"$schema": "https://schema.openenvelope.org/team/v1.json",
"name": "Content Team",
"slug": "content-team",
"version": "1.0.0",
"description": "A two- agent content pipeline.",
"visibility": "public",
"agents": [
{
"key": "researcher",
"name": "Research Agent",
"title": "Senior Researcher",
"role": "Finds and summarises source material",
"model": "openai:gpt-4o-mini"
},
{
"key": "writer",
"name": "Writing Agent",
"title": "Content Writer",
"role": "Drafts content from research",
"model": "anthropic:claude-opus-4-5",
"reportsToKey": "researcher"
}
]
}
reportsToKey는 계층 구조를 제공합니다. 실행 순서를 지정하려면 dependsOn이 있는 파이프라인을 추가하세요:
{
"pipeline": [
{ "key": "step-research", "agentKey": "researcher" },
{ "key": "step-write", "agentKey": "writer", "dependsOn": ["step-research"] }
]
}
현재는 메모리와 공유 상태와 같은 런타임 우려 사항을 스키마에서 제외합니다. 이는 스펙이 아닌 런타임에 속합니다. 스키마는 구조일 뿐: 에이전트들이 누구인지, 어떻게 관계하는지, 그리고 실행되는 순서입니다.
우리는 이를 전용 포맷이 아닌 공유 기반으로 만들고 싶습니다. 다중 에이전트 툴을 구축하고 호환성을 원한다면, 또는 스펙에 공백이 보인다면 우리는 듣고 싶습니다.
깃허브: github.com/openenvelope/schema
NPM: npmjs.com/package/@openenvelope/schema
스키마: schema.openenvelope.org