tools-ui について
tools-uiは、エージェント画面でツール呼び出しの状態や結果を表示するReactコンポーネントです。人による承認操作や、ツール名に応じたアイコン表示にも対応します。
主な機能
- 01ツール呼び出しの状態表示
- 02ツール結果の表示
- 03人による承認の要求
- 04ツール名に応じたアイコン設定
活用シーン
- 01エージェント画面で待機中・実行中の呼び出しを表示
- 02ツール実行の承認や拒否を受け付ける
- 03ツール出力やエラーを提示
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ inference-sh/ skills --skill tools-uiインストール後、Claude Code で/tools-uiを入力して読み込まれたか確認します。
詳細
belt CLI スキルをインストール:
npx skills add belt-sh/cli
ツール UI コンポーネント
ui.inference.sh のツールライフサイクルコンポーネントです。

クイックスタート
npx shadcn@latest add https://ui.inference.sh/r/tools.json
ツールの状態
| 状態 | 説明 |
|---|---|
pending | ツール呼び出しがリクエストされ、実行を待っています |
running | ツールを実行中です |
approval | 実行前に人間の承認が必要です |
success | ツールが正常に完了しました |
error | ツールの実行に失敗しました |
コンポーネント
ツール呼び出しの表示
import { ToolCall } from "@/registry/blocks/tools/tool-call"
<ToolCall
name="search_web"
args={{ query: "latest AI news" }}
status="running"
/>
ツールの結果
import { ToolResult } from "@/registry/blocks/tools/tool-result"
<ToolResult
name="search_web"
result={{ results: [...] }}
status="success"
/>
ツールの承認
import { ToolApproval } from "@/registry/blocks/tools/tool-approval"
<ToolApproval
name="send_email"
args={{ to: "[email protected]", subject: "Hello" }}
onApprove={() => executeTool()}
onDeny={() => cancelTool()}
/>
完全な例
import { ToolCall, ToolResult, ToolApproval } from "@/registry/blocks/tools"
function ToolDisplay({ tool }) {
if (tool.status === 'approval') {
return (
<ToolApproval
name={tool.name}
args={tool.args}
onApprove={tool.approve}
onDeny={tool.deny}
/>
)
}
if (tool.result) {
return (
<ToolResult
name={tool.name}
result={tool.result}
status={tool.status}
/>
)
}
return (
<ToolCall
name={tool.name}
args={tool.args}
status={tool.status}
/>
)
}
ツールカードのスタイル設定
<ToolCall
name="read_file"
args={{ path: "/src/index.ts" }}
status="running"
className="border-blue-500"
/>
ツールアイコン
ツール名に基づいて、アイコンが自動的に設定されます。
| パターン | アイコン |
|---|---|
search*, find* | 検索 |
read*, get* | ファイル |
write*, create* | 鉛筆 |
delete*, remove* | ゴミ箱 |
send*, email* | メール |
| デフォルト | レンチ |
エージェントコンポーネントと併用する
エージェントコンポーネントがツールのライフサイクルを自動的に処理します。
import { Agent } from "@/registry/blocks/agent/agent"
<Agent
proxyUrl="/api/inference/proxy"
config={{
core_app: { ref: 'openrouter/claude-sonnet-45@0fkg6xwb' },
tools: [
{
name: 'search_web',
description: 'Search the web',
parameters: { query: { type: 'string' } },
requiresApproval: true, // Enable approval flow
},
],
}}
/>
関連スキル
# Full agent component (recommended)
npx skills add inference-sh/skills@agent-ui
# Chat UI blocks
npx skills add inference-sh/skills@chat-ui
# Widgets for tool results
npx skills add inference-sh/skills@widgets-ui
ドキュメント
- エージェントへのツールの追加 - エージェントにツールを持たせる
- ヒューマン・イン・ザ・ループ - 承認フロー
- ツール承認ゲート - 承認の実装
コンポーネントのドキュメント:ui.inference.sh/blocks/tools
コメント
Markdown 対応