Cookbook
Agents & skills · for AI agents

現実的なサポートエージェントを作成する

MCPを通じて、魂と境界を持つタスク、ツール、ナレッジベースを備えたエージェントを作成します。

MCP tools:list_toolslist_knowledge_basescreate_agentget_agentcreate_share

構築する前に — 実行するのではなく、発見してください。 テナントに、その業務内容、使用する素材、実行される手順、および接続が必要なシステムについてインタビューし、全体のセットアップ(エージェント、ナレッジベース、スキル、必要に応じてMCP)を計画し、何も作成する前にそれをシミュレーションしてください。以下の手順は、その後に実行するものです — 構築前に発見する を参照してください。

原則 — エージェント1つ、業務1つ。 このエージェントに、明確に区切られた単一のタスクを与えてください。ビジネスに3つの業務(サポート および 営業 および スケジュール調整)がある場合、3つのエージェントを構築してください。「何でもこなす」エージェントは、それぞれの業務をより悪く対応します。詳細は 設計原則 を参照してください。

エージェントは ソウル + タスク + ツール + スキル + ナレッジベース です。soul はアイデンティティと声であり、task は業務とその境界です — 両方ともシステムプロンプトの固定プレフィックスに組み込まれます。

1. 接続可能なものを見る

list_tools()             # tools available to this tenant (including connected MCP tools)
list_knowledge_bases()   # knowledge bases you can mount

2. 作成する

デフォルトでオンになっているので、それらを要求する必要はありません。 新しいエージェントは、回答する前に2つまたは3つの事実を必要とする場合、タップ可能な単一/複数選択のフォームask_forms)で既に返信でき、チャートcompute_chart はデフォルトのツールリストに含まれています)を描画することもできます。これらは2026-08-03 までデフォルトでオフであり、作成呼び出しには最初のものに対するパラメータがありませんでした — そのため、それ以前に構築されたエージェントはそれらのどちらもなく、update_agent(ask_forms=True, add_tools=["compute_chart"]) によって最新の状態に更新する方法です。

tools=[...] を渡すと、デフォルトリストに追加するのではなく置き換えられるため、ツールを渡す際には常に compute_chart を含めてください。

名前は小文字です。 名前は表示されるものだけでなく、11のテーブルがエージェントをそれによって参照します(共有、セッション、ストーリーライン、チャネルバインディング、使用状況)、したがって Pippip はそれらにとって2つの異なるエージェントであり、あなたにとって同じものです。新しい名前は保存時に小文字に変換されます — そのように書き、調整する必要はありません。また、それは公開URLではありません — それは alias です。

create_agent(
  name="support",                  # lower-case; the platform lower-cases it anyway
  alias="support",                 # public human-readable URL slug — set one (url-safe, lowercase)
  soul="You are the support assistant for Acme Loans. Professional and warm.",
  task="Answer questions about mortgage products and the application process. "
       "Never promise a disbursement date; never give legal or tax advice; "
       "for any specific quote, call a tool — do not answer from memory.",
  tools=["web_search"],
  knowledge_bases=["company-policy"],   # use the KB's returned slug name (see below)
  published=True,
)
  • alias はエージェントの公開の人間が読めるアドレスセグメント({public_base}/t/<tenant>/<alias>)です — 覚えやすいリンクを提供できるように設定してください。それはurl-safeなスラグに正規化されます — 競合が発生すると alias_result で戻ります。
  • システムツールはデフォルトでオンです。 新しいエージェントは自動的に current_timeip_geoweather(組み込みの system MCP)を取得します — それらをリストする必要はありません; tools追加の ものです。
  • URL内の名前はスラグ化されます。 ナレッジベース の名前は作成時にurl-safeなスラグになります("Company Policy"company-policy); 入力したものではなく、返された 名前でそれを接続してください。

3. 着信を確認する

get_agent(name="Support")   # writing it doesn't mean it looks the way you intended

published=True可視であることを意味し、到達可能ではありません。エンドユーザーは共有(ステップ4)を作成するまでエージェントにアクセスできません。「公開済み」で止まらないでください。

境界は task に属します — ネガティブな制約(「決して保証しない…」)は、ポジティブな記述よりもドリフトを抑制します。安全性ルールを soul に配置しないでください — プラットフォームはグローバルなモデレーションを自動的に追加します。後で1つのフィールドを変更するには、update_agent(name, field=…) を使用してください — それはマージされるため、残りを空白にしません。

4. 公開する — 方法を確認してから到達可能にする

「完了」と言う前に、テナントに顧客がどのようにそれを見つけるべきかを尋ね、その後 create_share でそのチャネルを接続してください(それは実際に開けるリンクを返します — 「公開済み」ではなく、それを渡してください):

create_share(agent_name="Support", label="Website widget")
# → { token, chat_url, qr_url, embed_snippet, pretty_url, … }

レスポンスに pretty_url…/t/<tenant-alias>/<agent-alias>)が含まれている場合、それが人間用のリンクです — 読みやすく、トークン回転にわたって安定しています。それがnullの場合、欠落しているエイリアス(create_agent(alias=…) / PUT /agents/{name}/alias; コンソール内のテナントエイリアス → 設定)を設定し、トークンリンクを送信するのではなく。chat_url は埋め込みやQRコードに適切です。

  • ウェブサイトなし — リンクまたはQRのみ(フリーランサー、ショップ、フライヤー、名刺): chat_url(フルスクリーンのホストされたチャットページ — サイトは不要)と qr_url(印刷できるQR)を渡してください。それは匿名です: ログインは不要で、各訪問者はブラウザによって記憶されるため、常連客は認識されます。
  • 独自のウェブサイト: フローティングウィジェット用(</body> の前に1行)の embed_snippet、またはリンク/iframe用の chat_url を提供してください。
  • Telegram / WhatsApp: コンソールでチャネルごとに設定してください(エージェント → 統合 → Telegram / WhatsApp); そこに案内してください。

報告してください。 今すぐ開いてテストできる実際のリンクchat_url、およびサイトがない場合は qr_url)と、それをレビューするためのエージェントのコンソールページ — https://console.agent4.io/#/agents/Support を渡してください。「公開済み」ではなく — リンクです。