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>
51 lines
2.9 KiB
Markdown
51 lines
2.9 KiB
Markdown
# DISC-20260710-001 Agent Builder-MCP 인터페이스 협의 기록
|
|
|
|
- 상태: Closed / Historical
|
|
- 회의 기준일: 2026-07-10
|
|
- 원본: `20260710_AgentBuilder_MCP_통신규약분석협의_회의록.pptx`
|
|
- 원본 위치: 저장소 외부의 통제된 AX HUB 업무 자료 영역
|
|
- 보안 등급: 내부용
|
|
|
|
이 문서는 당시 논의의 출발점만 보존한다. 현재 동작이나 미합의 사항의 정본으로 사용하지 않는다.
|
|
|
|
## 현재 정본
|
|
|
|
| 주제 | 정본 |
|
|
|---|---|
|
|
| 현재 Agent Builder wire 계약 | [동기 JSON v0.3](../contracts/agent-builder-mcp/protocol-v0.3-streaming-policy.md) |
|
|
| Stateless 책임 | [ADR-0001](../decisions/ADR-0001-stateless-execution-boundary.md) |
|
|
| 단일 Tool 실행 | [ADR-0002](../decisions/ADR-0002-tool-exposure-and-single-call.md) |
|
|
| 실행 식별자 | [ADR-0005](../decisions/ADR-0005-standard-tool-name.md) |
|
|
| Timeout·retry | [ADR-0004](../decisions/ADR-0004-execution-guardrails.md), [요청 시간 예산](../architecture.md#요청-시간-예산) |
|
|
| 인증·인가 경계 | [ADR-0006](../decisions/ADR-0006-no-authentication-in-mcp.md) |
|
|
| 아직 합의하지 않은 사항 | [extension-points.md](../extension-points.md) |
|
|
|
|
## 회의 당시 확인한 방향
|
|
|
|
1. MCP Server는 stateless 실행 계층이며 Tool을 자율 선택하지 않는다.
|
|
2. Agent Builder가 LLM에 노출할 Tool을 선택하고 최대 50개로 제한한다.
|
|
3. 요청 하나는 Tool 하나만 실행한다.
|
|
4. 전체 상호작용은 300초를 넘기지 않는다.
|
|
5. MCP는 3만 자라는 임의 기준으로 Tool 원문 응답을 자르지 않는다.
|
|
6. 멱등성이 확인되지 않은 write/update Tool은 자동 retry하지 않는다.
|
|
|
|
## 회의 이후 달라진 결정
|
|
|
|
- 회의에서 검토한 Builder Tool UID는 MCP wire 식별자로 사용하지 않는다. 표준 MCP `name`을 사용한다.
|
|
- 당시 예시의 `tool/call`, `toolId/contract`, `toolCalls[]`는 현재 계약이 아니다. 현재는 표준 `tools/call`의 `params.name`과 `params.arguments`를 사용한다.
|
|
- MCP의 JWT decode·인증·인가 구현은 제거했다. NetworkPolicy가 호출자를 제한하고, Agent Builder와 Tool Service가 각자의 권한을 집행한다.
|
|
- MCP 요청 deadline 기본값은 270초이고 Tool timeout 상한은 30초다. 300초는 Agent Builder를 포함한 전체 상한이다.
|
|
- streaming 실행 경로는 제거했다. 기존 `Accept: application/json, text/event-stream`은 수용하지만 응답은 단일 `application/json`이다.
|
|
|
|
## 남은 논의의 관리 위치
|
|
|
|
오류 노출, cancellation, retry와 멱등성, 대용량 응답, 식별자 lifecycle, 운영 보완 사항은
|
|
[extension-points.md](../extension-points.md)에서만 관리한다. 이 문서에는 이후 상태를 중복 기록하지 않는다.
|
|
|
|
## 변경 이력
|
|
|
|
| 일자 | 내용 |
|
|
|---|---|
|
|
| 2026-07-13 | 회의 자료 분석과 초기 변경 범위 기록 |
|
|
| 2026-08-01 | 후속 ADR·현재 계약이 확정되어 역사 문서로 종결하고 정본 링크만 유지 |
|