5cfb8a1이 .gitignore에 docs/를 넣고 68개 파일을 지웠다. 그런데
AgentBuilderContractExampleTest, ToolBundleContractExampleTest,
ArchitectureDocumentContractTest는 docs/ 아래 계약 예제와 architecture
문서를 입력으로 직접 읽는다. 그 결과 clean clone에서 테스트 10건이
입력을 찾지 못해 실패했다.
제외 범위를 원래 의도대로 좁힌다. 에이전트 산출물(AGENTS.md, .agents/,
.codex/, docs/superpowers/)은 계속 제외하고 저장소 문서는 추적한다.
문서는 삭제 직전 상태(3de052a)를 기준으로 복원하고, 그 위에 main 코드와
대조해 어긋난 부분을 고쳤다.
- ADR-0007을 Superseded로 바꾸고 ADR-0013을 새로 쓴다. route당 Tool
Service N개가 최종안이며, PortalToolRegistryClient가 이미 route별로
N개를 유지하고 있는데 ADR-0007은 "bundles는 항상 한 항목"을 Accepted
상태로 주장하고 있었다. ADR-0009 결정 4도 부분 대체한다.
- ADR-0008 파일 헤더가 Accepted였으나 ADR-0009가 이미 대체한 상태였다.
- 6078852의 endpoint 소유권 반전이 반영되지 않은 서술을 계약 v0.2,
bundle 설정 예제, Tool 적재 안내에서 고친다.
- Portal registry 계약 v0.1과 route key 규약을 새로 문서화한다. 둘 다
구현은 있는데 계약 문서가 없었다.
- MCP SDK 2.0.0 SBOM을 추가한다.
번호 주석: ADR-0011과 0012는 feature/mcp-integration이 Tool inputSchema
정책에 쓰고 있어 비워 둔다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2.5 KiB
2.5 KiB
Agent Builder-MCP 목표 계약 v1 합의 기준선
- 상태: Partial Agreement
- 합의 기준일: 2026-07-10
- 목적: 확정된 목표 제약만 기록하고 미확정 payload의 추측 구현을 방지
Normative 합의 사항
책임 경계
- Agent Builder가 Tool을 선택한다.
- MCP Server는 요청에 명시된 Tool만 검증·실행한다.
- MCP Server는 stateless하며
mcp-session-id를 대화 상태로 사용하지 않는다.
Tool 노출과 호출 단위
- Agent Builder가 LLM에 노출하는 Tool은 최대 50개다.
- Agent Builder-MCP 목표 호출은 요청 하나당 Tool 하나다.
Tool 식별
- 표준 MCP Tool
name을tools/list와tools/call사이의 시스템 간 실행 key로 사용한다. - Tool Service가 전체 MCP 범위에서 고유한 namespaced name을 선언하고 MCP Server는 이를 재작성하지 않는다.
- Agent Builder UID는 Agent Builder 내부 관리에만 사용하고 MCP wire contract에 포함하지 않는다.
실행 가드레일
- 전체 상호작용 상한은 300초다.
- MCP Server는 3만 자 기준으로 원문 응답을 임의 절단하지 않는다.
- idempotency가 확인되지 않은 write/update Tool은 자동 retry하지 않는다.
아직 Normative가 아닌 항목
다음 항목은 목표 v1의 일부로 구현하면 안 된다.
- 최종 method 이름 (
tool/call,tools/call또는 별도 vendor method) - 최종 Tool Call parameter와 result field 이름
initialize전체 request/response- Tool name 변경·폐기 시 rolling 호환 기간과 Agent Builder 내부 mapping lifecycle
- 사원 식별자 header를 언젠가 필수로 승격할지 여부 (현재 계약에서는 선택값이며 MCP는 검증하지 않는다)
- HTTP status와 JSON-RPC/업무 error code 매핑
- read retry 조건과 idempotency key
- 300초 timeout budget과 cancellation protocol
- 대용량 response의 최대 크기와 continuation 방식
- streaming media type과 framing
요청·응답 규격 처리 원칙
목표 v1의 확정 JSON 예시는 아직 제공하지 않는다. 미확정 field를 임의로 채운 JSON은 사실상 새로운 계약 결정이 되기 때문이다.
Agent Builder의 전체 payload와 위 미확정 항목이 승인되면 다음 순서로 갱신한다.
- 이 문서 상태를
Approved로 변경한다. - 목표 v1 JSON example과 schema를 추가한다.
- 관련 ADR을 추가하거나 기존 ADR의 구현 보류 조건을 해제한다.
- 코드와 테스트 변경을 별도 작업으로 수행한다.