Skip to content

[Future][Token Efficiency] Consolidate tool definitions into one canonical schema #259

Description

@kevintseng

Parent roadmap: #250

目標

消除 MCP tool definitions 與 OpenAI-compatible export 的手寫重複規格,讓新增 formatname 等欄位只需要修改一個 canonical definition。

這是結構整理任務;不得改變現有工具數量、名稱、描述、required fields、defaults 或 runtime 行為。

工作內容

  • 將 canonical JSON tool definitions 放在 transport-neutral module。
  • MCP advertisement 與 OpenAI-compatible export 都從該 module 取得規格,不再各自手寫。
  • Zod/runtime schemas 保持輸入驗證權威。
  • 建立完整 parity tests,比較名稱、欄位、required、enum、defaults 與 additionalProperties,而非只比較工具數量。
  • 保持產出的 serialized definitions 與目前版本相同;任何差異必須被列出並獨立授權。
  • 不新增 registry framework、code generator 或 extension system;使用最少的新概念完成單一來源。

完成證據

  • MCP 與 OpenAI export 沒有第二份手寫 input schema。
  • Refactor 前後的 public tool definitions byte-for-byte 相同,或有明確核准的差異清單。
  • 故意讓 Zod 與 canonical definition 漂移時,parity test 會失敗。
  • Packaged output 與 source registry digest 一致。
  • Simplification review 確認刪除的重複多於新增的抽象,且只有一條 registry path。

相依關係

Blocked by #252 baseline freeze,避免 refactor 影響基準身份。完成後 unblock #254#256

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions