logo
Development
検索
ツール管理

ツール管理

概要

ツールは Agent が操作を実行するための「手足」です。システムは 19 種類の組み込みツールを提供し、MCP プロトコルOpenAPI 定義、およびスキルによるツールセットの拡張をサポートします。ツール管理ページでは、利用可能なすべてのツールを設定・管理します。

スクリーンショット位置


19 種類の組み込みツール

ファイル操作系(7 種類)

ツール 機能 セキュリティレベル
Read File ファイル内容を読み取り、行番号範囲に対応、上限 5MB P0(自動実行)
Write File ファイルを書き込み、存在しない場合は親ディレクトリを含めて自動作成 P0
Edit 既存ファイルの局所的な修正(検索置換モード) P0
MultiEdit 既存ファイルに対する複数箇所の一括修正 P0
List Directory ディレクトリのファイルとサブディレクトリを一覧表示し、ファイルサイズを表示 P0(ロック)
Glob Files ワイルドカードパターンでファイルを検索、最大 100 件の結果 P0(ロック)
Search Files ファイル内容を正規表現で検索、最大 250 件の結果 P0(ロック)

コマンド実行系(1 種類)

ツール 機能 セキュリティレベル
Bash Shell コマンド、スクリプト、Git 操作を実行、タイムアウト 120 秒、出力上限 50KB P1(初回確認)

ネットワーク系(1 種類)

ツール 機能 セキュリティレベル
Web Fetch URL の内容を取得して Markdown に変換、自動ノイズ除去、15 分間キャッシュ P1

タスク管理系(1 種類)

ツール 機能 セキュリティレベル
Task Manage 構造化タスクリスト(未着手/進行中/完了)を管理、3 ステップ以上のタスクで自動呼び出し P0(ロック)

スキル呼び出し系(1 種類)

ツール 機能 セキュリティレベル
Skill インストール済みの Skill モジュールを呼び出して専門タスクを実行 P1

ユーザーインタラクション系(1 種類)

ツール 機能 セキュリティレベル
AskUserQuestion Agent がユーザーに質問を投げかける(最大 4 問、各 2〜10 個の選択肢) P0(ロック)

サブエージェント系(3 種類)

ツール 機能 セキュリティレベル
create_local_sub_agent 本ノード上に一時的なサブエージェントを作成、1〜3 段のネストに対応 P0
dispatch_sub_agent 登録済みのサブエージェントにタスクを振り分け P0
dispatch_multi_node_agent Gateway 経由でリモートノードにタスクを振り分け P0

メモリ系(4 種類)

ツール 機能 セキュリティレベル
Conversation Search キーワードで過去の対話を検索、時間範囲フィルターに対応、最大 10 件 P0(ロック)
Recent Chats 直近 1〜20 件の対話セッションを一覧表示、時間フィルターに対応 P0(ロック)
Memory Query 保存済みのユーザーメモリを検索(セマンティック検索 + グラフ拡張) P0(ロック)
Memory Manage ユーザーメモリの追加、更新、または削除 P1

セキュリティレベルの説明

レベル 意味 動作
P0 安全な操作 自動実行、ユーザー確認不要
P1 確認が必要 初回呼び出し時に権限確認をポップアップ
P2 毎回確認 呼び出しのたびにユーザー確認が必要
ロック 降格不可 セキュリティレベルが固定され、調整不可

管理者はセキュリティガードレールでロックされていないツールの権限レベル(組織の下限)を調整でき、個人は APP 実行時セキュリティでさらに厳格化できます。


MCP ツールプロトコル

**MCP(Model Context Protocol)**は標準化された AI ツール通信プロトコルで、外部サービスによるツールセットの拡張をサポートします。

3 種類の伝送方式

伝送 説明 適用シーン
stdio ローカルサブプロセス通信(command + args) ローカル CLI ツール
SSE Server-Sent Events(HTTP ロングコネクション) リモートサービス
HTTP Streamable HTTP API リモートサービス

5 種類の認証モード

認証 説明
none 認証なし
bearer Bearer Token
basic HTTP Basic Auth
service サービス間認証
oauth2 OAuth2 認可コードフロー(well-known エンドポイントを自動検出)

MCP 管理画面

McpManager コンポーネントで MCP サーバーを管理します:

  • サーバーの追加:名称、伝送方式、接続パラメータ、認証方式を設定
  • 編集/削除:既存の設定を変更または削除
  • 有効化/無効化:サーバーの利用可否状態を切り替え
  • ツール検出:接続後、サーバーが提供するツールリストを自動検出

セキュリティ分離

MCP サブプロセスはホワイトリスト環境変数のみを渡し、API Key などの機密情報の漏洩を防ぎます。


API ツール

OpenAPI/Swagger ドキュメントからの自動解析とツール作成をサポートします:

機能 説明
自動解析 OpenAPI 仕様からエンドポイント、パラメータ Schema を抽出
認証設定 5 種類の認証モード
テンプレート変数 {{variable}} 動的置換
HTTP メソッド GET / POST / PUT / DELETE / PATCH

カスタムツールディレクトリ NEW

システムに ToolDirectoryManager を新たに追加しました。{dataDir}/TOOLs/{orgId}/_custom/ ディレクトリ配下のカスタムツールを管理し、APP を再起動せずにロードできます。

ディレクトリ構造

{dataDir}/TOOLs/{orgId}/_custom/ ├── my-tool-1/ │ ├── metadata.json │ └── ... └── my-tool-2/ ├── metadata.json └── ...
                      
                      {dataDir}/TOOLs/{orgId}/_custom/
├── my-tool-1/
│   ├── metadata.json
│   └── ...
└── my-tool-2/
    ├── metadata.json
    └── ...

                    
このコードブロックをポップアップで表示

metadata.json の例

{ "id": "my-tool-1", "name": "My Custom Tool", "description": "自定义工具说明", "type": "API", "enabled": true, "createdAt": 1776921208476, "updatedAt": 1776921208476 }
                      
                      {
  "id": "my-tool-1",
  "name": "My Custom Tool",
  "description": "自定义工具说明",
  "type": "API",
  "enabled": true,
  "createdAt": 1776921208476,
  "updatedAt": 1776921208476
}

                    
このコードブロックをポップアップで表示

ロード機構

  • スキャンメソッド:scanAndLoad(orgId)
  • 型サポート:API / MCP
  • 組織分離:orgId ごとにディレクトリを分け、相互に干渉しない
  • ホットロード:APP の再起動不要

ツールロードパイプライン

すべてのツールは以下の順序でロードされ、マージされます:

① 組み込みツール(19 種類) ↓ ② MCP ツール(設定済みの MCP サーバーから検出) ↓ ③ API ツール(OpenAPI 定義から解析) ↓ ④ カスタムツール(ToolDirectoryManager が _custom/ ディレクトリをスキャン) ↓ ⑤ スキルツール(有効化された Skills から execute_skill_{id} を注入) ↓ ⑥ マージして重複排除 → 最終ツールリスト → LLM に送信
                      
                      ① 組み込みツール(19 種類)
    ↓
② MCP ツール(設定済みの MCP サーバーから検出)
    ↓
③ API ツール(OpenAPI 定義から解析)
    ↓
④ カスタムツール(ToolDirectoryManager が _custom/ ディレクトリをスキャン)
    ↓
⑤ スキルツール(有効化された Skills から execute_skill_{id} を注入)
    ↓
⑥ マージして重複排除 → 最終ツールリスト → LLM に送信

                    
このコードブロックをポップアップで表示

よく使うツールの利用シーン

ユーザーリクエストの例 Agent が呼び出すツール 説明
「package.json の内容を見てほしい」 Read File ファイル内容を読み取って返す
「関数名を getData から fetchData に変更して」 Edit 正確な検索置換
「README.md を作成して」 Write File 新規ファイルを作成
「プロジェクトにはどんな .tsx ファイルがある?」 Glob Files パターンでファイル名を検索
「コード内のどこで useEffect を使っている?」 Search Files ファイル内容を正規表現で検索
「npm install を実行して」 Bash Shell コマンドを実行
「この Web ページの内容を要約して:https://...」 Web Fetch Web ページを取得して Markdown に変換
「このタスクは複雑なので、まず計画を立てて」 Task Manage 構造化タスクリストを作成
「昨日のデータベース移行に関する対話を検索して」 Conversation Search 過去の対話を検索
「私は dark テーマを好むと覚えておいて」 Memory Manage メモリに保存

操作ガイド:MCP ツールの追加

  1. APP を開く → 設定 → ツール → MCP ツール領域
  2. MCP サーバーの追加をクリック
  3. 設定を入力:
    • 名称:この MCP サーバーに識別用の名前を付ける
    • 伝送方式:stdio / SSE / HTTP を選択
    • stdio の場合:コマンド(例:npx)とパラメータ(例:@anthropic/mcp-server-filesystem)を入力
    • SSE/HTTP の場合:サーバー URL を入力
  4. 認証が必要な場合、認証方式を選択して認証情報を入力
  5. 保存をクリック
  6. システムが自動的にサーバーに接続し、利用可能なツールを検出
  7. 検出されたツールがツールリストに表示され、デフォルトで有効化される

ヒント:MCP サブプロセスはホワイトリスト環境変数のみを渡します。MCP ツールが API Key などの環境変数を必要とする場合、設定の env フィールドで明示的に宣言する必要があります。


ツール無効化の影響

あるツールを無効化すると、Agent は対話中にそのツールの存在をまったく認識しなくなります。これは以下を意味します:

無効化したツール 影響
Bash Agent はいかなる Shell コマンド(npm、git、コンパイルなど)も実行できない
Read File / Write File Agent はファイルの読み取りや作成ができない
Web Fetch Agent は Web ページの内容を取得できず、検索系スキルも影響を受ける
Memory Query / Manage Agent はメモリの検索や保存を行わない
Skill Agent はいかなるスキルモジュールも呼び出せない
create_local_sub_agent Agent はサブエージェントを作成してタスクを分解できない

推奨:明確なセキュリティ上の理由がない限り、コアとなるファイル操作ツール(Read / Write / Edit / Glob / Search)の無効化は推奨しません。無効化すると Agent のタスク実行能力が著しく制限されます。


よくある質問

Agent が「ファイル操作を実行できません」と言う

ファイル操作系ツール(Read File、Write File、Edit など)が無効化されていないか確認してください。ツール管理ページでこれらのツールが有効な状態であることを確認します。

MCP ツールの接続に失敗する

  1. MCP サーバーのコマンド/URL が正しいか確認する
  2. stdio 方式の場合、対応するコマンドがインストール済みか確認する(例:npx には Node.js 環境が必要)
  3. 環境変数(API Key など)が必要かどうかを確認する
  4. APP ログを確認して詳細なエラー情報を取得する

Agent が期待したツールを使ってくれない

Agent はタスクのニーズに基づいて自律的にツールを選択します。Agent が「間違った」ツールを選択した場合、対話中で明確に指示できます:「Bash ツールを使ってこのコマンドを実行してください」。


関連ドキュメント