註冊並分享邀請連結,可獲得影片播放與邀請獎勵。

cv usk
@cv_usk
AI / Software Research Notes AI Agent, LLMOps, MLOps, Software Architecture 投稿は個人の意見です。
加入 May 2026
284 正在關注    440 粉絲
# OpenCodeの機能と実践的な使い方 🧰 組み込みツールだけでは足りない、社内APIやDBを叩きたい。そんなときはLLMが呼べる「自分専用のツール」を作れます。 🏷️ タイトル: 独自ツール作成 🔗 URL: 📘 概要 カスタムツールは、LLMが会話中に自律的に呼び出せる独自の関数です。read/write/bashといった組み込みツールを拡張し、社内APIアクセスやDBクエリなど、ドメイン固有の操作をエージェントに与えられます。定義はTypeScript/JavaScriptで書きますが、中身では任意の言語を実行できます。 ⚙️ 機能の説明 ・配置場所は2つ。プロジェクト単位なら `.opencode/tools/`、グローバルなら `~/.config/opencode/tools/` です。 ・ファイル名がそのままツール名になります。`database.ts` なら `database` ツールになります。 ・1ファイルから名前付きエクスポートで複数ツールを定義でき、その場合は `<ファイル名>_<エクスポート名>` という名前になります。 ・`@opencode-ai/plugin` の `tool()` ヘルパーで定義します。`description`(LLMへの説明)、`args`(Zodスキーマ)、`execute`(非同期の実装本体)が主要素です。 ・引数はZodで型安全に定義します。`tool.schema` 経由でも、`zod` を直接 import しても構いません。 ・`execute` の第2引数 context から `agent` `sessionID` `messageID` `directory` `worktree` といったセッション情報を受け取れます。 🛠️ 実践的な使い方 最小例として `.opencode/tools/database.ts` に、`tool()` で `description`・Zodの `args`(例: `query`)・非同期の `execute` を定義してデフォルトエクスポートします。 中身は任意言語を呼べます。たとえばcontextの `worktree`(gitルート)からスクリプトのパスを組み立て、`Bun.$` で `python3` を実行すればPythonにも橋渡しできます。 💡 ユースケース 社内の在庫APIや認証付き内部エンドポイントを叩くツールを定義しておけば、エージェントが組み込みツールと同じ感覚で社内データを取得・更新できます。説明文(description)を丁寧に書くほど、LLMが適切なタイミングで呼んでくれます。 ⚠️ 注意点 ・組み込みツールと同名にすると上書きされます。意図して置き換える場合を除き、ユニークな名前を付けてください。組み込みツールを無効化したいだけなら、上書きではなく権限(permission)で `deny` するのが正攻法です。 ・`execute` 内で外部コマンドや社内APIを叩くため、実行権限や秘密情報の扱いには十分注意してください。 #OpenCode# #AIエージェント#
顯示更多