Skip to content

Fyllo Signal

Fyllo Signal 是 ACP Agent 在 Chat assistant 正文中输出的被动展示协议。它把一段符合 schema 的标签渲染为轻量视觉信息,不要求用户确认,也不会触发业务动作。

Fyllo Signal 与 fyllo-action 使用相同的顶层独立 Markdown block 边界,但承担不同职责:

协议用途用户操作持久化与提醒
fyllo-action请求 FylloCode 执行一个需要确认的动作确认或取消可产生 Action 状态,部分类型进入会话事件栏
fyllo-signal展示 Agent 已经确定的轻量信息不创建状态,不进入会话事件栏,不改变待处理数量

已启用类型

当前只启用 show.time

字段约束
label必填字符串,长度 1–200,不允许 CR 或 LF

它用于响应当前日期或时间查询,并把 label 渲染为带时钟图标的非交互 pill。一次回复最多输出一个 show.time

标签格式

真实 Signal 只能使用 type 属性,body 必须是与该类型 schema 匹配的严格 JSON object:

html
<fyllo-signal type="show.time">
{
  "label": "2026-07-30 14:30"
}
</fyllo-signal>

上面的 fenced block 是协议示例,因此会保持普通代码文本。Agent 要发出真实 Signal 时,opening tag 必须从行首开始并独占顶层 Markdown block;前后如果还有说明文字,标签与说明之间必须保留空白行。Payload 字符串中的字面 <> 需要分别编码为 \u003c\u003e

解析与显示边界

只有 Chat 中的 assistant text part 会启用 Fyllo Signal。Specs、Guidelines、Knowledge、Proposal、user message、reasoning 和 tool 内容不会注册 Signal 标签,其中的相同文本按普通 Markdown 显示。

FylloCode 会等到 closing tag 到达且完整标签满足独立 block 边界后再渲染。未闭合标签保持普通 Markdown;已闭合但 type、JSON 或 payload 无效的标签显示通用 invalid Signal,不会调用具体类型组件。

Signal 的历史显示只依赖已保存的 assistant 文本重新解析。挂载或重新挂载 Signal 不会调用 Action IPC、写入 session actionStates、创建独立存储记录或影响 session attention。

基于 MIT 发布