コンテンツにスキップ

エージェントを @メンション

このガイドでは、スペース内でエージェントとチームメイトを @メンションする方法を説明します。

コンポーザーで @ を入力してオートコンプリートからエージェントを選ぶか、名前を自分で 入力します:

@alice fix the login bug

メンションされたエージェントは、まだ参加者でなければスペースに参加者として追加され、 そのスペースのコンテキストとモードでディスパッチされます。メンションされなかった 参加者はメッセージを見ますが、ディスパッチはされません。

エージェントのメンションを含まないメッセージを送ると、Control Center が応答者を自分で 選びます。会話で最後に発言したエージェント、それがいなければ会話にオーナーがいれば そのオーナー、それもいなければスペースの参加者の中で最初のトップレベルエージェント です。エージェントが 1 体だけのスペースでは、常にその唯一のエージェントです。

メンショントークンは大文字と小文字を区別せず、完全一致または前方一致で照合され ます。つまり @arch は architect という名前のエージェントに届き、@Alice は alice に届きます。

これに備えて計画しておく価値のある帰結が 2 つあります:

  • 短いトークンはエラーではありません。 2 体のエージェントが同じプレフィックスを 共有している場合、最初に見つかった方が勝ち、どちらが勝つかは順序に依存します — 同点を解決する規則によるものではありません。名前が重なる場合は、常に完全な名前を 使ってください。
  • トークンの一部になるのは英字、数字、アンダースコアだけです。 パーサーは @(\w+) にマッチするため、@code-reviewer はトークン code として、@my agent は my として 読まれます。名前にハイフン、ドット、空白を含むエージェントを確実にメンションすることは できません — 名前をプレーンテキストとして挿入するオートコンプリートを使っても同じ です。エージェントの名前は 1 語にするか、アンダースコアで付けてください。

メンションは、テキストがエージェントに届く前にそこから取り除かれます。したがって、 メンション_だけ_のメッセージ(@alice)は何もディスパッチしません — やることを 与えてください。

複数のエージェントを一度にメンションする

「複数のエージェントを一度にメンションする」というセクション
@alice refactor the auth module. @bob write tests for it.

両方のエージェントが同じ会話に並行してディスパッチされ、どちらもメッセージ全体を 受け取ります。

両者はそのスペースのワークツリーを共有もします。リポジトリのワークツリーは エージェントごとではなくスペースごとにプロビジョニングされます。各エージェントは 自分の AGENTS.md、スキル、設定のためのオーバーレイ作業ディレクトリを独自に持ち、 共有リポジトリは読み書き可能でリンクされます。そのため、一緒にメンションされた 2 体のエージェントは、互いの編集を見ることができ、衝突もします。

エージェントにマッチしなかった @token はすべて、同じ大文字と小文字を区別しない 完全一致または前方一致の規則で、ワークスペースの人間のメンバーに対してハンドルで 試されます。

解決された人間のメンションは何もディスパッチしません。それは、通知ルーターが その人にピングを送れるようにするためだけに、メッセージのメタデータに乗っています。

エージェントの名前は常に最初に試され、エージェントが確保したトークンがメンバー一覧に 回されることはありません — 1 つの @word が解決できるプリンシパルは常に 1 つだけです。

ディスパッチされたエージェントは、プロンプトの中に「Summons」ブロックを受け取ります。 そこには、誰が自分を呼び出したかが書かれ、スペースの名簿 — 他のエージェント (トップレベルまたはサブとして印が付けられています)と人間のメンバー — が一覧表示 されるため、誰にハンドオフできるかを把握できます。このブロックは、返信の中で別の エージェントをメンションするとそのエージェントが起きること、自分自身をメンションしても 無視されることも伝えます。

エージェントがエージェントをメンションする場合

「エージェントがエージェントをメンションする場合」というセクション

エージェントは自分の返信の中でハンドオフできます。ターンがきれいに終了したとき、 そのテキスト内のメンションが解決され、それらのエージェントはスペースに追加されて同じ 会話にディスパッチされます。メンションしたターンが彼らのプロンプトになります。失敗 したターンや中断されたターンは誰も起こしません — 思考の途中で止まったからです。

規則は、コンポーザーのものより意図的に厳しくなっています。誤った推測を直してくれる人を 誰も見ていないからです:

  • 完全な名前だけ。 前方一致はしません。@arch は人間が入力したときは architect に 届きますが、エージェントからは誰にも届きません。2 体のエージェントにマッチする名前も 誰にも届きません。
  • コードは散文ではありません。 フェンス付きブロック内や `backticks` 内の メンションは無視されるため、@Override アノテーションや pip install foo@1.2 を 引用しても安全です。閉じられていないフェンスは、それ以降すべてを空白にします。
  • 前のトークンに連結した @ はメンションではありません — sam@host.com、 pkg/@scope、node@20 は誰にも解決されません。
  • ハイフンは保持されます — そのため @code-reviewer は code というトークンとして ではなく、それ自体として解決されます。
  • 1 ターンにつき最大 3 体のエージェント。 サマリーで 6 人のチームメイトを挙げている エージェントは、それを並べているのであって、召喚しているのではありません。

ウェイクチェーンは委任と同じように制限されます。深さ 3 で、すでにチェーン上にいる エージェントをそのチェーンで再び起こすことはできません(A → B → A は不可)。順序付き のペアは、チェーンをまたいでもレート制限されます。拒否されたウェイクは、どのメンションが なぜ届かなかったのかを伝えるシステムメッセージを会話に投稿します — 解決されなかった 名前の場合は投稿しません。そうでなければ、文中のあらゆる @ が自らを語り出すことに なるからです。

散文に依存してはならないハンドオフ — リクエスト/応答、またはスペース外のエージェントに 到達すること — には、代わりに send_to_agent、ask_agent、delegate_task ツールを 使ってください。