跳到正文
Ankole

群聊主动介入

面向 AI Agent:本页的 Markdown 版本位于 https://ankole.agentbull.com/zh-Hans-CN/docs/ambient-intervention/index.md,文档索引位于 https://ankole.agentbull.com/zh-Hans-CN/llms.txt。

把一条 信号路由规则 的群聊消息模式设为可主动介入后,Agent 会看到群里未 @ 它的消息,并为每批新消息选择一条处理路径。默认是沉默;有明确价值时,也可以启动简短回复、识别新工作,或把新信息交给一个正在运行的后台任务。

该模式下的群聊行为取决于两项控制:频道常驻指令和信号路由配置。

每条消息只判一次

Agent 按频道维护一个判断进度。每次判断只针对上次判断之后的新消息;已经看过的旧消息只作为背景展示,不会被反复评估。所以一条它决定不接的消息,不会在几轮之后突然被翻出来回复。

每次判断都会记录动作、授权来源和理由。后台任务转交还会记录唯一目标。Agent 显得过于沉默或过于活跃时,运维侧可以直接检查所选路径。

四种处理路径

  • 不处理(NOOP):Agent 保持沉默。闲聊、确认消息、重复回答或已经有人承接的工作通常走这条路径。
  • 前台回复(FOREGROUND_REPLY):启动一个简短的可见回合,用于回答、澄清、协调、报告状态或完成小范围查询。这条路径不能创建或重启后台任务。
  • 新工作(NEW_WORK):识别出一个独立且需要较多工作的任务。人类直接提出请求,或频道常驻指令明确授权时,才进入普通工作回合;两者都没有时,Agent 只能询问是否接手。该确认回合没有工具,也不能创建后台任务。
  • 转交(HANDOFF):把这批新消息静默交给一个明确匹配的运行中后台任务。目标必须属于同一 Agent、owner session、频道和 binding;候选不完整或有歧义时不能转交。

意图识别器本身不会创建后台任务。它只选择处理路径和授权来源,后续普通回合仍受原有确认与后台任务规则约束。

回复挂在提问的人身上

Agent 决定发言时会区分两种情况:

  • 有人在问它——群里某条新消息实际是在向它提问或叫它(即使没有 @)。这时它的回复会锚定到那条消息上:在支持的渠道里表现为引用回复或线程回复,群里的人一眼能看出它在回答谁。
  • 主动补位——没有人点名,它认为此刻补充信息有价值(或常驻指令命中)。这时回复作为普通群消息发出。

归因有校验:被认定的提问必须真实存在于这批消息里、出自人类,而且提问的人仍是最近的发言者。话题已经翻篇的旧提问不会被强行接起,这种情况会降级为普通的主动发言。

频道常驻指令

常驻指令是一段挂在频道上的持久策略文本,告诉 Agent 在这个群里什么时候该主动说话。例如:

  • “只在 CI 变红或部署失败时说话。”
  • “每天 18:00 之后有人贴日报,帮忙汇总;其他时间保持安静。”
  • “这里是客户群,除非有人直接问技术问题,否则不要插话。”

**设置方式就是在群里直接告诉 Agent。**任何频道成员都可以说“以后这个群只在 CI 红了才说话”,Agent 会调用工具把它存为该频道的常驻指令,并记录是谁要求的。修改是整体替换:让它改指令时,它会把完整的新文本存进去。说“清掉这个群的常驻指令”即可清除。

常驻指令会同时进入两处:路径判断把它当作该频道的运营策略,并可在语义明确匹配时授权 NEW_WORK;可见的普通回合也能在上下文里看到它。

两条边界:

  • **只在“可主动介入”模式下生效。**其他模式的路由规则下,指令会被保存但完全不起作用,Agent 存完会告诉你它当前未激活。把规则切到可主动介入后自动生效。
  • 单条指令文本上限 4000 字符。

Console 也可以读写常驻指令,见 Console API 参考 中的 /signal-channels/:channel_id/standing-orders 端点。

它还是插话太多或太少

  • 太多:先收紧或清空常驻指令,再收紧 Agent 的角色说明;只需要被动问答的群,直接把路由规则改回仅处理明确提及。
  • 太少:确认路由规则是可主动介入模式;给频道写一条明确的常驻指令——判断默认保守,没有指令时它只在有人实际需要它时开口。
  • 指令设了没反应:看 Agent 存完指令时的回复——它会说明指令当前是否激活。未激活几乎总是因为该频道的路由规则不是可主动介入模式。

下一步