33 lines
1.7 KiB
Markdown
33 lines
1.7 KiB
Markdown
# ADR-0002 Agent Builder Tool 노출 제한과 단일 Tool 호출
|
|
|
|
- 상태: Accepted
|
|
- 결정일: 2026-07-10
|
|
- 관련 논의: [DISC-20260710-001](../discussions/DISC-20260710-001-agentbuilder-mcp-interface.md)
|
|
|
|
## 배경
|
|
|
|
많은 Tool을 한 번에 LLM context에 노출하면 Tool 식별과 선택 정확도가 저하될 수 있다. 또한 한 요청에서 여러 Tool을 실행하면 timeout, 부분 성공, 순서 의존성과 오류 계약이 복잡해진다.
|
|
|
|
## 결정
|
|
|
|
- Agent Builder가 사용자·Agent·업무 맥락에 맞는 Tool을 선택한다.
|
|
- Agent Builder가 한 시점에 LLM에 노출하는 활성 Tool은 최대 50개다.
|
|
- 목표 Agent Builder-MCP 호출 모델은 요청 하나당 Tool 하나다.
|
|
- MCP Server는 50개 선별 로직이나 LLM 기반 우선순위 판단을 구현하지 않는다.
|
|
|
|
## 영향
|
|
|
|
- 50개 선별은 Agent Builder 변경 사항이며 MCP 코드 변경 대상이 아니다.
|
|
- 요청 하나당 Tool 하나라는 결정은 그대로 유효하다.
|
|
|
|
### 결정 당시의 envelope 기록 (현재 구현 아님)
|
|
|
|
결정 시점에는 최종 field 이름이 미확정이어서 `params.toolCalls[]` 배열 envelope를 유지하고,
|
|
원소를 정확히 한 개만 허용해 단일 호출을 강제했다. 빈 배열과 2개 이상은 `-32602`로 거절했다.
|
|
|
|
이 envelope는 [ADR-0005](ADR-0005-standard-tool-name.md)와
|
|
[계약 v0.3](../contracts/agent-builder-mcp/protocol-v0.3-streaming-policy.md)에서
|
|
표준 MCP `params.name` + `params.arguments`로 대체되었다.
|
|
**현재 코드에 `toolCalls`는 존재하지 않는다.** 배열이 사라졌으므로 "정확히 한 개" 검증도
|
|
필요 없어졌고, 단일 호출 결정은 envelope 구조 자체로 만족된다.
|