コンテンツにスキップ

@ で AI スタッフを呼び出す

未リリース:呼び出し一覧の manager_may_read は、有効な上司が別の読み取り専用チーム履歴 APIで閲覧できることを示します。再開・エクスポート・既存履歴の権限は広げません。画面通知は別途追加します。

普段の会話は既定の AI スタッフが返信します。メッセージを 1 件だけ別のスタッフに渡したいときは、メッセージアプリで人をメンションするように @ と名前を入力します。v1.76.0 から、呼び出せる相手は送信者によって決まり、メッセージは 1 件ずつ振り分けられます。

  1. 誰も呼んでいないメッセージは、その会話の既定のスタッフに届きます。チャンネルやスレッドに紐付いたスタッフ、なければ allowed_channels にそのチャネルを含むスタッフ、それもなければメインのスタッフです。ダッシュボードの WebChat では選択中のスタッフが答え、誰も選んでいなければ既定のスタッフが答えます。
  2. スタッフを呼んだメッセージは、そのスタッフにその 1 件だけ届きます。名前のない次のメッセージは既定のスタッフに戻ります。固定はされません。
  3. @ID、@トリガー([agent] trigger の値)、@表示名 で呼び出せます。大文字小文字は区別せず、名前の直後に日本語や中国語が続いても認識します(@財務小幫手幫我算帳)。全角の @ も使えます。メールアドレス(ann@example.com)は呼び出しになりません。
  4. 複数の名前が当てはまるときは最も長いものを採ります(@財務小幫手 は @財務 より優先)。同じ長さなら ID がトリガーより、トリガーが表示名より優先です。それでも複数のスタッフに当てはまる名前は、呼び出せるのが 1 人だけでも自動では渡さず、選択肢を返します(誰も呼び出せなければ拒否)。複数のスタッフに触れているときは、本文で最初に出てくる、呼び出せるスタッフが選ばれます。
  5. 名前の一部(@財務)は黙って誰かに渡さず、候補の一覧を返します。
  6. @ がなければ切り替わりません。
  7. メッセージアプリ自体の「人へのメンション」(LINE のメンション、Telegram のグループメンバーの @ユーザー名)は、名前の先頭がスタッフと同じでもスタッフの呼び出しになりません。
送信者 呼び出せる相手
ダッシュボード管理者 全員
WebChat のダッシュボードアカウント 既定のスタッフ(従来どおり)、外部公開されたスタッフ、アカウントに紐付いたスタッフ(権限レベルは問わない)。マネージャーはチームのスタッフも呼び出せます(次の節)
ダッシュボードアカウントに紐付いたメッセージアプリの利用者(確認済みのチャネル ID) その会話の既定のスタッフ、外部公開されたスタッフ、紐付いたスタッフ。マネージャーはチームのスタッフも呼び出せます
それ以外(LINE の友だち、Telegram ユーザー、サイトのチャット訪問者) その会話の既定のスタッフと外部公開されたスタッフ

マネージャーはチームのスタッフを呼び出せる

Section titled “マネージャーはチームのスタッフを呼び出せる”

Enterprise 版では、各アカウントに直属の上長を 1 人設定できます(「管理 → メンバー」でメンバーを編集して「直属の上司」を設定するか、users.create/users.update の manager_user_id。同じページで組織図に切り替えられます。上司はサイドバーの「組織 → マイチーム」で部下と呼び出せるスタッフを確認できます。ダッシュボード設定を参照)。ロールがマネージャー(または管理者)の人は、自分より下の各階層の部下に紐付いた AI スタッフを、最大 8 階層下まで呼び出せます。停止中の部下も含みます(上長が代わりに面倒を見られます)。退職した部下は含みません。ロールが一般社員の人には、下に人がいてもチームのスタッフは付きません。

部下経由で得られる権限は Operator までで、Owner にはなりません。

操作 管理者 直接 Owner 直接 Operator 直接 Viewer マネージャー(部下経由) 既定・外部公開のスタッフ 紐付けのない送信者
@ で会話、WebChat で会話相手に選ぶ ✅ ✅ ✅ ✅ ✅ @ のみ。相手には選べません(既定のスタッフは誰も選ばないときの相手) 既定と外部公開のスタッフのみ
仕事を任せる(ダッシュボードのタスク作成・目標作成・担当変更) ✅ ✅ ✅ ❌ 部下の紐付けが Owner か Operator のとき ✅ ❌ ❌
タスクボードでそのスタッフのタスクを一覧 ✅ ✅ ✅ ✅ 任せられるとき ✅。カード(タイトル・状態)のみで内容は見えません — —
記憶・会話履歴・スタッフ設定・人格ファイル ✅ 紐付けの権限どおり 紐付けの権限どおり 紐付けの権限どおり ❌ — —

部下の紐付けが Viewer のとき、マネージャーはそのスタッフと会話だけできます。「AI スタッフ」ページとスタッフ設定ページは、引き続き直接の紐付けだけを表示します。

マネージャーがダッシュボードからチームのスタッフに任せたタスク(自分が作成者)は、そのスタッフに任せられる間は、変更・担当変更・取り消し・削除ができます。他の人が作ったタスクは引き続き直接の Operator が必要です。カードだけ表示されるタスクには元の会話へのリンクも付きません(channel・channel_link は空)。

紐付け・ロール・状態・上長を変えると、次のメッセージと次のダッシュボード操作から新しい設定で判断します。再ログインもキャッシュの期限切れ待ちも不要です(書き込みのたびに権限キャッシュが無効になります)。ユーザー情報を読めないときは、紐付けなしに狭めます。Personal 版にはユーザーと上長の設定がなく、動作は従来どおりです。Enterprise 版から Personal 版に戻したときも、データに残った上長の設定は無視します。

スタッフを外部の連絡先に公開するには、編集ページで「外部の連絡先がこのスタッフを呼び出せるようにする」をオンにします(agent.toml の [channels] public_trigger = true)。既定はオフで、管理者だけが変更でき、スタッフ自身は変更できません。

ダッシュボードアカウント(WebChat にログイン中、またはアカウントに紐付いたメッセージアプリの利用者)が呼び出す権限のないスタッフを呼ぶと、モデルを呼ぶ前に拒否されます。返信は権限がないことだけを伝え、スタッフ名は出しません。ただし、その名前がいずれかのスタッフのものであることは分かります。紐付けのない送信者(LINE の友だち、Telegram ユーザー、サイトのチャットや Odoo ライブチャットの訪問者)には拒否を返しません。呼び出せない名前は誰にも当てはまらない名前と同じく普通の文として既定のスタッフに届き、「メンションのみ」のグループでも bot への呼びかけとは数えません。外部の人がこの方法でどのスタッフがいるかを調べることはできません。拒否はセキュリティ監査ログ(trigger_route_refused)に記録されます。記録するのはダッシュボードアカウント、紐付けのない送信者は、このインストールに保存した鍵(trigger_audit.key、所有者のみ読み取り可、1 度だけ作成)によるプラットフォーム ID の 16 文字の HMAC で、生の ID は残しません。同じ送信者が同じスタッフへの拒否を繰り返しても、監査記録は 1 分に 1 件です。許可された切り替えは info ログに出て、権限の出どころ(via)として binding、team:<部下のアカウント ID>:<階層数>、default、public、admin のいずれかを記録します。管理者アカウントは user:<アカウント ID> と記録します。

グループでの回答は全員に見えます。 紐付けのあるメンバーが LINE や Telegram のグループで自分に紐付いたスタッフを呼ぶと、回答はグループに表示され、メンバー全員が読めます。制限付きのスタッフを紐付けるときはこの点を考慮するか、1 対 1 のチャットを使ってもらってください。

  • WebChat:入力欄で @ を打つと、呼び出せるスタッフ(アバター・名前・部署)が表示され、入力に合わせて絞り込みます。一覧は agents.callable から取得し、各メッセージのチェックと同じ規則です。出どころが複数あるときは「自分の AI スタッフ」「自分のチーム:○○ さんの AI スタッフ」「公開 AI スタッフ」に分かれます。会話の上のスタッフ欄にもチームのスタッフが並びます。矢印キーで移動、Enter または Tab で @名前 を挿入、Esc で閉じます。今の相手以外のスタッフが答えた返信には、誰が答えたかが表示されます。
  • LINE:@ だけ(または @ と名前の一部)を送ると、クイックリプライのボタンで一覧が返ります。一度に最大 13 個で、多いときは最後の「もっと見る」で次のページを表示します。名前をタップすると @名前 が送信されます。
  • Telegram(共有 bot):同じ一覧をインラインボタンで表示します。ボタンに収まらないときはテキストで返します。
  • その他のチャネルはテキストで一覧を返します。

一覧・拒否・「用件を伝えて」の案内は、AI の返信と同じアクセス制御(ブロック・ペアリング)と有人対応のチェックを通ってから送られます。一覧と拒否は、同じ会話の同じ送信者にそれぞれ 10 秒に 1 回までで、その間の繰り返しには返信しません(プラットフォームのメッセージ枠を節約)。メッセージアプリでの文言は [general] default_language(繁体字中国語・英語・日本語)に従い、WebChat は閲覧者のダッシュボードの言語で表示します。

メッセージアプリ(LINE、Telegram、Discord、Slack など)で @名前 だけを送るか、LINE・Telegram の一覧で名前をタップすると、bot が用件を尋ねます。10 分以内のその会話での次の 1 件だけがそのスタッフに届き、その後は通常の振り分けに戻ります。そのメッセージが届いた時点で権限を再確認します。同じグループの他のメンバーのメッセージには影響しません。

待機状態はメモリにだけ保存されるため、ゲートウェイを再起動すると消え、次のメッセージは既定のスタッフに届きます。LINE では、メッセージをどのスタッフに渡すかは受け付けた時点で 1 度だけ決めてメッセージと一緒に保存し、実行前や返信のたびの確認はそれを再利用して、まだ呼び出せるかだけを確かめます。再試行されたメッセージが待機状態を作り直すことはありません。そのスタッフがもう受けられない場合、メッセージは隔離され、bot が再送をお願いします。

スタッフごとに会話履歴を分ける

Section titled “スタッフごとに会話履歴を分ける”

呼ばれたスタッフは、その会話の中の自分専用のセッション(<会話>#agent:<ID>)で答えます。すべてのチャネルと WebChat で同じです。履歴・保存された機密・確認待ちの目標が既定のスタッフと混ざることはありません。既定のスタッフは呼ばれたスタッフの回答を見ず、その逆も同じです。

グループの「メンションのみ」

Section titled “グループの「メンションのみ」”
  • LINE:「メンションのみ」をオンにすると、bot 自身へのメンション、@ でスタッフを呼ぶメッセージ(または @ 一覧の要求)、呼ばれたスタッフが待っている 1 件にだけ返信します。v1.76.0 より前はグループ全体が無反応になっていました。LINE は引用されたのが bot 自身のメッセージかを bot に知らせないため、bot のメッセージの引用は対象外です。
  • Telegram:共有 bot はメンションのみのグループで、自分の @ユーザー名 と返信に加え、スタッフ名も受け付けます。スタッフ専用 bot は自分の @ユーザー名 のみです。
  • WebChat の返信フレーム(assistant_done)に agent(ID)と agent_name が入ります。
  • LINE と Telegram では、既定以外のスタッフの返信の先頭に 【名前】 が付きます。既定のスタッフには付きません。LINE の吹き出しの見出しは答えたスタッフの名前になりました(以前は常にメインのスタッフ)。
  • 行動契約(CONTRACT.toml)のチェックと機密の復元は、実際に答えたスタッフとして、そのセッションで行います。
  • Discord・Slack などのチャネルも同じ規則・テキスト一覧・先に呼ぶ方式を使いますが、ボタンはなく、プラットフォームの人へのメンションも除外しません。エンドツーエンドの実地テストは WebChat と LINE のみで、Telegram は単体テストだけです。
  • その他のチャネルの送信者がダッシュボードアカウントに対応付けられるのは、チャネルのログインで確認済みの ID だけです。
  • スタッフを呼んでもタスクは作られません。チャットから任せるには /交辦 @名前 内容 を使います(チャットからタスクを任せる)。タスクボードでは、チームのスタッフのタスクはカードだけが見えます。自分が任せたものは例外です(「目標 → 自分が任せた」)。