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

25 lines
1003 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ツールの動的追加/削除
## 背景
現状の `ToolServer` はツールの登録のみで、実行中の unregister / replace ができない。
エージェントが状況に応じてツールセットを切り替えるユースケース(例: フェーズ遷移、権限変更)に対応できない。
## 方針
`ToolServer` / `ToolServerHandle` に動的操作を追加する。
```rust
// 削除
tool_server.unregister("tool_name")?;
// 置換(同名ツールを新しい実装で上書き)
tool_server.replace(new_tool_definition)?;
```
## 設計ポイント
- 実行中のツール呼び出しとの競合を考慮(呼び出し中のツールは削除をブロックするか、完了を待つか)
- LLM に渡すツール定義リストは次の `PreLlmRequest` 時点で反映される(遅延反映で十分)
- Builder APIworker-builder-api.mdとの整合: `reconfigure()` で静的に差し替える方法と、動的に差し替える方法の使い分け