yoi/tickets/tool-dynamic-registry.md
2026-04-11 03:23:48 +09:00

1003 B
Raw Blame History

ツールの動的追加/削除

背景

現状の ToolServer はツールの登録のみで、実行中の unregister / replace ができない。 エージェントが状況に応じてツールセットを切り替えるユースケース(例: フェーズ遷移、権限変更)に対応できない。

方針

ToolServer / ToolServerHandle に動的操作を追加する。

// 削除
tool_server.unregister("tool_name")?;

// 置換(同名ツールを新しい実装で上書き)
tool_server.replace(new_tool_definition)?;

設計ポイント

  • 実行中のツール呼び出しとの競合を考慮(呼び出し中のツールは削除をブロックするか、完了を待つか)
  • LLM に渡すツール定義リストは次の PreLlmRequest 時点で反映される(遅延反映で十分)
  • Builder APIworker-builder-api.mdとの整合: reconfigure() で静的に差し替える方法と、動的に差し替える方法の使い分け