エージェントのプレイブック
ワークスペースに保存したスキルとカスタムプロンプトをエージェントがどう見つけるか、そして見つけてもらえる書き方。
ある作業のやり方を、スキルやカスタムプロンプトとして一度設定したとします。どの Base に記録するか、どのフィールドを埋めるか、どんな口調にするか。その後は、どのエージェントにも自分で考えたやり方ではなく、あなたのやり方で作業してほしいはずです。Busabase では、こうして保存されたやり方をプレイブックと呼びます。エージェントはすべての指示の最初にプレイブックを探します。このページはプレイブックを書く人のためのものです。
プレイブックに含まれるもの
| プレイブック | 置き場所 | エージェントが照合するもの |
|---|---|---|
| スキル | Skill ノード:SKILL.md と、任意の references/・scripts/ | スキルの name と、SKILL.md の frontmatter にある description |
| カスタムプロンプト | ノードの Agent プロンプト → カスタムシナリオ | シナリオ名と、プロンプト本文の冒頭 |
スキルがテンプレートから入ったものか自分で書いたものかは関係ありません。どちらも同じように見つかります。
各ノードタイプに最初から付いている組み込みシナリオ(「スキーマを設計」「一括インポート」など)はプレイブックではありません。同じタイプのノードではどれも同じなのでエージェントはすでに知っていますし、含めるとあなたが書いたものが埋もれてしまいます。カスタムシナリオは組み込みシナリオの後ろに並び、組み込みシナリオは常に残ります。
エージェントが探すタイミング
エージェントは、単なる質問も含めてすべての指示の最初に、自分でやり方を考える前にプレイブックを探します。探す範囲は今いるフォルダだけでなく、ワークスペース全体です。
見えるのは、エージェントのキーで読めるものだけです。アクセス権のないノードにあるプレイブックは、結果に一切表示されません。
MCP、CLI、REST API で接続したエージェントはすべてこのルールに従います。ダッシュボードから起動したエージェントも同じです。
エージェントの選び方
- 依頼を言い換えます。 Busabase 自体は言葉の意味を解釈しません。エージェントが依頼を 2〜5 通りに言い換えます。あなたの言語でも英語でも言い換えます。「今日 Acme に行ってきたので記録して」は「顧客訪問を記録」「log customer visit」「visit record」になります。
- Busabase がその言い換えを照合します。 対象は各プレイブックの名前、説明、シナリオ名です。複数の言い換えに一致したものは、1 つの単語にたまたま一致したものより上位になります。
- 同点なら近いものが勝ちます。 Sales フォルダにいて、Sales と Ops の両方に「週報」スキルがある場合、Sales のものが先に来ます。
- エージェントはそれを読み、その通りに作業します。 合うものがなければ、プレイブックなしで作業します。止まることも、一致したふりをすることもありません。
あなた自身の言葉が常に優先されます。 プレイブックに「Leads Base に書く」とあっても、あなたが「Partners に入れて」と言えば、エージェントはあなたに従います。
プレイブックはやり方であって、権限ではありません
エージェントはプレイブックの文章を、ほかの保存済みコンテンツと同じように扱います。プレイブックは作業のやり方を説明できますが、エージェントに変更リクエストを承認・マージさせることも、キーが持つ以上の権限を与えることもできません。それができるのは、会話の中であなたが言ったことだけです。
エージェントに見つけてもらえるプレイブックの書き方
エージェントがプレイブックを見つけられるかどうかは、ほぼ名前と説明の書き方で決まります。
- カスタムプロンプトには、普段使う言葉で名前を付けます。 「顧客訪問を記録」と書き、「Visits にレコードを作成」とは書きません。人が口にするのは前者で、後者は操作そのものであり、組み込みシナリオがすでにカバーしています。
- スキルの
descriptionには、いつ使うのかを書きます。 「Acme アカウントの顧客訪問を記録・振り返るときに使う」なら見つかります。「CRM ヘルパー」では見つかりません。 - チームが使う言語ごとに名前を付けます。 エージェントはすべての言語の名前を照合します。ダッシュボードのエディタは、表示中の言語の名前を保存します。1 つのシナリオに複数言語の名前をまとめて付けたい場合は、エージェントに設定させてください。
busabase-cli nodes set-agent-promptsと API は{ "en": "Log a customer visit", "ja": "顧客訪問を記録" }を受け付けます。 - 別々のフォルダに同じ名前のプレイブックがあっても構いません。 意図したものであれば問題ありません。作業している場所に最も近いものが選ばれます。
- 1 つのプロンプトに繰り返し行う作業を 1 つ、1 ノードに 2〜5 個まで。 繰り返し戻ってくる作業を挙げられないなら、書かないでください。あいまいなプロンプトは誤った一致を生むだけです。
すべてのプレイブックを一か所で見る
左上のスペースメニューを開き、プレイブック を選びます。このページには、スペース内であなたが読めるすべてのスキルとカスタムプロンプトがフォルダごとに表示されます。すべて、スキル、プロンプト で絞り込めます。プロンプトの行には、それがどのノード上にあるか、読み取りだけか(読み取り専用)書き込むか(変更あり)が表示されます。プロンプトを開く を使うと、ページを離れずにそのノードのプロンプトを編集できます。
エージェントがプレイブックを見つけられるか確かめるには、エージェントにどう伝えますか? にエージェントへの指示を入力し、検索 を選びます。エージェントが実行するのと同じ順位付き検索の結果が、各結果の一致した項目とともに表示されます。これは文字どおりのプレビューです。エージェントは自分で言い換えた表現(と英語)も一緒に送るので、ここに表示されるより多く見つかることがあります。何も一致しなければ、いま入力した言葉でプロンプトの名前やスキルの説明を書き直してください。
使われたプレイブックを確認する
エージェントはプレイブックに従ったとき、返信の中でリンク付きでそれを伝えます。例:使用したプレイブック:顧客訪問を記録(Visits)。返信にプレイブックの名前がなければ、合うものが見つからなかったということです。
変更リクエストにも記録されます。変更をレビューするとき、変更リクエストのページと受信トレイに プレイブック「顧客訪問を記録」経由 というラベルが表示されます。クリックするとそのプレイブックが開きます。プレイブックがあるノードをあなたが読めない場合、ラベルは名前もリンクもない プレイブック経由 になります。
ラベルのない変更リクエストは、プレイブックを使わずに書かれたか、エージェントが使ったプレイブックを伝えなかったものです。どの変更リクエストにも一度も現れないプレイブックは、エージェントに見つけてもらえていません。
エージェントは書き込みのたびに、プレイブックを kind:nodeId[:key] の形で宣言します。カスタムプロンプトなら prompt:<nodeId>:<key>、スキルなら skill:<nodeId> です。
- CLI:グローバルオプション
--playbook、または環境変数BUSABASE_PLAYBOOK - MCP:書き込みツールの
playbook引数 - REST:
x-busabase-playbookヘッダー
Busabase は記録する前に値を確認します。プレイブックが存在し、エージェントのキーで読めることが条件です。確認に通らなくても書き込みはそのまま行われ、ラベルが付かないだけです。名前は Busabase が自分で入れるため、エージェントがラベルに独自の文字を載せることはできません。
エージェントが使わなかったとき
- 指示の中で名前を挙げます。「Visits の『顧客訪問を記録』プロンプトを使って」のように指定すると、エージェントはそれを直接読みます。
- 次に名前や説明を直します。 次回は指定しなくても見つかるようにします。最初に入力して見つからなかったときの言葉を使いましょう。
- エージェントが読めるか確認します。 キーで読めないノードにあるプレイブックは、エージェントには見えません。
開発者向け:呼び出し方
| 接続方法 | 検索 | 1 件を読む |
|---|---|---|
| CLI | busabase-cli playbooks search --query "…" --query "…" [--near-node-id <id>] [--kinds skill,prompt] [--limit N] --output json | busabase-cli playbooks get --kind prompt --node-id <id> --key <key> または --kind skill --node-id <id> |
| MCP | playbooks_search | playbooks_get |
| REST | POST /api/v1/playbooks/search | GET /api/v1/playbooks/{kind}/{nodeId}?key= |
検索は queries(最大 8 通りの言い換え)と、任意の nearNodeId・inNodeId・kinds・limit を受け取ります。返り値は短いランク付きリストで、total・truncated・coverage が付きます。言い換えを渡さない場合は、近いプレイブックを一覧します。結果が truncated のとき、または coverage がある種類を検索しなかったと示すとき(古いサーバー)、空のリストはプレイブックが存在しないことを意味しません。grep や search との違いは 全体検索 を参照してください。