im_wower
·
2026-03-28
BAA_FINAL_MESSAGE_INGEST_REQUIREMENTS.md
1# BAA 最终消息实时接线需求
2
3## 状态
4
5- `已落地(T-S031 已实现)`
6- 优先级:`high`
7- 记录时间:`2026-03-27`
8
9## 关联文档
10
11- [BAA_INSTRUCTION_SYSTEM.md](/Users/george/code/baa-conductor/plans/BAA_INSTRUCTION_SYSTEM.md)
12- [BAA_BROWSER_FINAL_MESSAGE_RELAY_REQUIREMENTS.md](/Users/george/code/baa-conductor/plans/archive/BAA_BROWSER_FINAL_MESSAGE_RELAY_REQUIREMENTS.md)
13- [BAA_INSTRUCTION_CENTER_REQUIREMENTS.md](/Users/george/code/baa-conductor/plans/archive/BAA_INSTRUCTION_CENTER_REQUIREMENTS.md)
14- [06-integration-with-current-baa-conductor.md](/Users/george/code/baa-conductor/docs/baa-instruction-system-v5/docs/06-integration-with-current-baa-conductor.md)
15- [07-rollout-plan.md](/Users/george/code/baa-conductor/docs/baa-instruction-system-v5/docs/07-rollout-plan.md)
16
17## 背景
18
19当前 repo 已经完成了两件前置工作:
20
21- Firefox 插件会把 ChatGPT / Gemini 的最终 assistant message 以 `browser.final_message` relay 给 conductor
22- conductor 侧已经有可运行的 `instructions/` Phase 1 最小闭环,但当前仍主要通过 synthetic assistant message / fixture 驱动
23
24现在真正缺的不是 parser 本身,而是把这两段接起来:
25
26- `browser.final_message`
27- `BaaInstructionCenter.processAssistantMessage(...)`
28
29如果这层不接,现有 BAA instruction center 仍然只是“本地可运行模块”,不是 browser bridge 主链路的一部分。
30
31## 核心结论
32
33- conductor 应在收到 live `browser.final_message` 时,按当前 Phase 1 能力直接进入 extract / parse / normalize / dedupe / policy / route / execute
34- 首版只接本机精确 target:
35 - `conductor`
36 - `system`
37- 首版不要求自动注入 / 自动发送 / delivery plan
38- 立项时允许只做内存态执行审计和最近结果快照,不要求同时落库
39
40## 首版范围
41
42- Firefox WS `browser.final_message` 到 instruction center 的实时接线
43- live message 和 current synthetic path 共用同一套 instruction core
44- live message replay 去重
45- fail-closed 错误路径
46- 最小可观察结果快照 / 读面诊断
47- 文档与自动化测试
48
49## 处理原则
50
51- 只在最终 assistant message 上执行,不消费 stream 中间态
52- 普通消息无 ` ```baa ` 时应安全忽略
53- 同一条 final message replay 不得重复执行
54- 任一 block 在 parse / policy / route 失败时,整批 fail-closed,不允许半执行
55- 插件仍只负责 raw relay,不放 parser / executor
56
57## 当前明确不要求
58
59- 不要求本需求里实现 artifact materialization / manifest / delivery plan
60- 不要求本需求里做 upload / download / inject / send
61- 不要求本需求里补持久化 dedupe 或 execution journal
62- 不要求本需求里扩到 `browser.*` / `codex` / `node.*` / `pool.*` / `role.*`
63
64## 验收条件
65
66- live `browser.final_message` 到达后,符合当前 Phase 1 范围的 ` ```baa ` 指令会进入 instruction center
67- 无 ` ```baa ` 的 final message 不会误执行
68- replay 同一条 final message 不会重复执行
69- batch 内任一 unsupported / denied 指令会 fail-closed,且不会发生半执行
70- 文档已同步到 `plans/`、`tasks/` 和必要的 `docs/`
71
72## 当前预期残余边界
73
74- live message dedupe 和 instruction dedupe 已落到单节点本地持久化;重启后可恢复,但不做跨节点共享
75- 当前仍只做本机精确 target:
76 - `conductor`
77 - `system`
78- 当前最近摘要已写入 bounded journal,并同步暴露到:
79 - Firefox WS `state_snapshot.snapshot.browser.instruction_ingest`
80 - `GET /v1/browser` → `data.instruction_ingest`
81- 当前 live ingest 路径已把执行结果接到 artifact / upload / inject / send,但仍不扩到跨节点或完整 task/run 编排