Skip to content

Design Decisions zh

Hermes Agent edited this page Oct 1, 2026 · 2 revisions

设计决策——「browsa 为什么不做 X」

English | 中文 | 日本語 | 한국어 | Español | Português | Русский

这些是拍过板的决定。每条都有真实的失败/论证历史,没有新事实不要翻案(正式记录在 docs/adr,本页是人读版索引)。

产品边界

决定 一句话理由 出处
媒体下载 UI 已删除,不恢复 chrome.downloads 的头注入不可靠 + YouTube PO token 反爬;browsa 用户有 cat-cat/yt-dlp。ASR 管线自己的 fetch 机制不受影响 ADR-0001
不做 per-tab 会话自动切换 切 tab 就换会话 = 夺走用户的控制权;全局单会话 + 显式开新会话是默认形态 ADR-0002
不做 per-message「上下文回执」 建过又删:不有用;附件 chip 的「检查/撤销」是唯一检视入口 同上
tabCapture「边播边录」ASR 兜底被否 实时捕获时长=播放时长,没播过的视频无法转写——核心场景直接死 AGENTS.md 2026-09-28
通用「写入/操作页面」方向搁置 复制粘贴基线覆盖单块写入;剩余场景太散,「做好太复杂」;重启信号=具体表单/批量流程 项目 roadmap 记录
学习方向可做,但「考考我/感知bar」形态被否 形态问题不是方向问题;重启先对齐形态 learning pivot 记录

数据与隐私

决定 一句话理由 出处
存储图片像素永不销毁 气泡该有啥就有啥(真用户报告驱动);压缩只在请求侧(imagesSeen 标签化) ADR-0013
会话快照保留图片字节(不剥离) 恢复的会话首回合重发真像素,像素级追问才答得上来 ADR-0005

协议与架构

决定 一句话理由 出处
thinking 默认 omit;runs echo guard 是正确的 reasoning.available 是答案重放,显示即重复 ADR-0004
追问卡(subchat)故意不并入 turn-request 阶梯 独立 Hermes 会话/作用域是产品承诺,不是技术债 ADR-0007
每个输入面一个独立 ↑/↓ 召回域 追问卡召回追问,不混主输入 ADR-0006
MAIN-world 注入函数的 helper 必须内嵌 executeScript 只序列化单函数;真机 ReferenceError 教训 ADR-0009
Mol* 走 RAW 拷贝、office wasm 不预热、3D 换 vendor 须真机验证 vendor 加载三约束 ADR-0008
CAPABILITY_HINTS 体积冻结;渲染器自动渲染不加按钮 接口契约非 few-shot;按钮是装饰性添笔 ADR-0010
流式渲染块级提交;不用 vendor 增量解析器 保持 HTML 形状逐字节不变,O(n) 已达成 ADR-0011
效率审计 wontfix 清单 取舍已定(如getAll键表、SW唤醒之外的项),勿重报 ADR-0012
移植规则:借技法不借招牌功能 youtube-digest 的双语字幕对齐视图建了又撤——学习工具的招牌不属于 browsa ADR-0003
模型输出契约优先选有训练先验的标准格式 nn 自研规格的教训:格式没先验→模型瞎猜→静默劣化;已换 dot 渲染契约记忆

侧栏功能的两条军规

  1. 任何自己发 LLM 调用的面板功能,要么支持全部四种 apiStyle,要么可见地失败——论文阅读卡因静默跳过 Hermes 被撤(协议分支成本 > 边际价值)。
  2. 不问就不加开关:autoCleanBeforeExtract 这类「没人要的开关」被用户点名删掉,行为直接定死。

源头:docs/adr/0001-0013 全部;AGENTS.md 各 do-not-re-propose 条目。同步于 2026-10-01。

Clone this wiki locally