v0.52.4 — 모델이 tool을 고르는 근거를 처음 감사했다
이 서버의 최종 사용자는 모델이다. 그런데 지금까지의 감시는 전부 "tool이 옳은 답을
내는가"였다 — 스윕은 tool을 이름으로 직접 부르고, 포맷터 테스트는 description을 렌더조차
하지 않는다. "모델이 옳은 tool을 고르는가"는 어느 게이트에도 안 걸린다.
소스 접근을 막은 에이전트 3종(Opus·Sonnet·Haiku)에게 tools/list 응답 그대로의 카탈로그와
실제 투자자 말투 질문 52개만 주고 라우팅을 시켰다. 결과는 Opus 51/52, Sonnet 51/52,
Haiku 46/52. 라우팅 자체는 대체로 멀쩡했고, 오답 2건이 둘 다 "없는 것을 없다고 안
적어서" 생겼다.
고친 것
get_stock_price— "기본 지표"라는 뭉뚱그린 표현에 배당수익률이 들어 있는 것처럼
읽혔다. 실제 렌더는 PER·EPS·PBR·시가총액뿐이고 키움 REST에는 배당 TR 자체가 없다.
지표를 열거하고 배당 미제공을 명시했다.get_order_executions— 기간 파라미터가 없다는 사실이 빈 결과 각주에만 있었다.
모델이 tool을 고를 때 읽는 건 description이라, "어제 체결가"를 묻는 질문이
get_transactions로 샜다. 조회 범위를 description으로 올리고 양쪽에 역참조를 달았다.get_orderbook—get_stock_quotes를 "(체결 내역)"이라고 불렀다. ka10095는
멀티코드 시세 스냅샷이고 그 이름은get_order_executions가 쓴다.- 모호함이 갈린 자리 넷 —
get_theme_groups에 테마명 검색이 없다는 사실(업종이면
get_sector_stocks),get_investor_rank(매매 기준)와get_foreign_holding(보유·한도
기준)의 streak 충돌,get_investor_trend↔get_daily_trading경계,
get_valuation_rank가 지표 하나씩만 받는다는 점,get_net_buy_rank의market필수.
검증
고친 카탈로그로 같은 시험을 다시 봐서 Haiku 46/52 → 51/52, 오답 0을 확인했다.
덤으로 v0.52.3이 describe로 고친 자리도 재현됐다 — 장중 대차잔고 질문에서 세 모델 모두
to_date를 넘기지 않았다.
게이트
npm run check에 여섯 번째 검사가 붙었다 — description이 가리키는 tool 이름이 실존하는지.
오타·개명으로 없는 tool을 가리켜도 typecheck는 문자열 안을 안 보고 포맷터 테스트는
description을 렌더하지 않는다. 실패 주입으로 가짜 가드가 아님을 확인했다.
동작 변화는 없다. 바뀐 것은 모델이 읽는 문구와 게이트뿐이다.