一部技术与叙事双线并进的开源项目“深描”——《ego-browser-agent

一部技术与叙事双线并进的开源项目“深描”——《ego-browser-agent浏览器之书》万字评论

一、总评:在“产品说明书”与“技术文学”之间,它站在了哪一边?

如果只看标题与目录,这本书很容易被误认为又一本开源项目的加长版 README:分章讨论工具清单、推流后端、登录态导入、版本兼容,再加一章“未来展望”。但真正读进去,会发现它做的是一件更少见的事——它试图为一段具体的开源工程实践,建立一套完整的“技术传记”文体。全书以 ego-browser 这个真实项目为传主,以 2026 年 4 月到 9 月的版本演进为时间轴,以源码、CHANGELOG、issue 编号、社区 PR 为原始档案,写出的既不是教程,也不是产品宣传,而是一种介于工程复盘、架构分析与产品哲学之间的混合体。

它的质量,放在当前中文技术写作的坐标系里,可以给出这样的判断:技术准确性扎实、结构设计自觉、叙事技巧成熟、观点表达克制但有力;主要短板在于部分章节的信息密度不均衡、重复表述较多、个别技术细节对非目标读者不够友好。整体而言,这是一部完成度很高的技术书稿,尤其在“如何把开源项目的工程细节写得有人读”这个命题上,提供了可复用的范式。

下面从结构、技术、叙事、语言、观点、细节、短板七个维度逐一拆解。

二、结构:一条四段坡道,还是一条螺旋上升的楼梯?

序言里作者自己交代了全书结构:“一条四段的坡道”——第一、二章铺地基(技术史与上游内核),第三到六章登主楼(插件接入、工具版图、推流、接管),第七到九章进地窖(登录态攻防、self-observation、健壮性),第十章回到地面(哲学之争)。这个比喻是准确的,但低估了实际结构的复杂度。

更精确的描述是:全书是一条双螺旋。一条线是“技术能力如何一步步长出来”——从上游 ego-lite 的 heredoc CLI,到 32 个结构化工具,到 SSE 推流,到输入回传,到登录态导入,到空闲回收与跨平台兜底。另一条线是“透明性如何从产品理念变成工程承诺”——从第 1 章的黑盒之痛,到第 5 章的观察窗,到第 6 章的接管,到第 8 章的 self-observation,到第 10 章的信任作为产品。两条线在每一章里交织:技术章节的末尾总会把话题拉回“这对透明意味着什么”,哲学章节的开头又总会回到某一处具体机制。

这种双螺旋结构的好处是每一章都有独立的阅读价值,同时又在为全书的主论点积累证据。第 3 章讲插件接入,看似是最“枯燥”的装配层内容,但如果没有这一章对 tools / subprocess / webServer / patch 四条挂点的拆解,后面第 5 章的推流路由、第 6 章的输入回传、第 9 章的 worker 守卫就都失去了落点。第 7 章的登录态攻防看似是一个独立的安全专题,但它回答的正是第 1 章提出的“四道墙”里最厚的那一道,也为第 10 章“敢不敢把登录态交给 agent”的追问提供了工程底气。

结构的自觉还体现在章节之间的交叉引用上。全书频繁出现“第 4 章已详述”“第 5 章提过”“第 7 章会展开”这类标记,序言里也专门交代了“各章尽量按顺序读,后面的章节会引用前面的机制;被引用处都标了章号,跳读也不至于迷路”。这种写法在技术书里并不常见——多数作者要么假设读者线性阅读、不加标记,要么把每章写成独立文章、重复交代背景。这本书选择了中间路线:用章号引用代替重复叙述,既保持了各章的独立性,又避免了信息冗余。这是一个成熟的写作决策。

但结构上也有可商榷之处。第 3 章和第 4 章的信息密度明显高于其他章节,尤其第 3 章对 DSH 插件体系的拆解(capability seam、fiber、inject、cordis.patch.yml、dsh-plugin.json、tsdown 三产物形态)在不到一万字的篇幅里塞进了大量宿主框架的概念。对不熟悉 Cordis 或 DSH 的读者,这一章可能是全书阅读门槛最高的一章。相比之下,第 8 章和第 10 章则偏向观点输出,技术细节密度较低。这种“前重后轻”的分布,如果是有意为之——先建立技术信任,再展开哲学讨论——那它是成功的;但如果读者在第 3 章卡住,后面几章的精彩可能会被错过。一个可能的改进是:在第 3 章开头增加一段更平实的“本章只回答一个问题:ego-browser 如何把自己挂上宿主”,用更少的术语先建立直觉,再进入细节。

另一个结构上的观察:第 10 章的“终章”性质非常强,它不仅是最后一章,更是全书论点的收束与升华。第 10.4 节“给 Agent 一双看得见的眼睛”几乎是一篇独立的跋文。这种写法在学术著作里常见,在技术书里少见,但在这里是成立的——因为全书从第 1 章开始就在为这个结论铺路。唯一的风险是:如果读者只挑技术章节读,可能会觉得第 10 章“太虚”;但如果从第 1 章一路读下来,第 10 章的每一句都有前面九章的支撑。

三、技术:源码级拆解的深度与边界

这本书最突出的技术特征,是对源码的引用不是装饰性的,而是论证性的。几乎每一个关键判断后面,都跟着一段可直接定位的代码、注释或 CHANGELOG 条目。举几个例子:

第 5 章拆 CDP 推流时,直接引用了 Page.startScreencast 的四个参数(format、quality、maxWidth、everyNthFrame),并解释了 Page.screencastFrameAck 的流控作用。这不是“介绍 CDP 是什么”,而是“在这个项目里,CDP 的哪一行代码决定了画面的哪一帧”。

第 7 章拆 App-Bound Encryption 时,引用了 login-import.ts 头部的注释原文,以及 countEncryptionMarkers 函数对 v10 / v20 标记的逐三字节扫描逻辑。这段注释本身就是项目作者对 ABE 机制的实测结论,书的作者没有转述成二手描述,而是直接呈现一手证据。

第 9 章拆截图全白修复时,引用了 captureScreenshotClip 函数的完整实现,并解释了 sx / sy(即 window.scrollX / scrollY)如何修正 clip 原点。这个函数的二十几行代码,比任何“CDP 截图要注意滚动偏移”的概括都更有说服力。

这种写法的技术可信度很高,因为它把判断权交给了读者:你可以不同意作者的分析,但你不能说作者没看过代码。更重要的是,它建立了一种**“可验证的写作伦理”**——书里的每一句技术断言,理论上都可以回到仓库里对账。序言里专门交代了事实与观点的边界:“书中所有版本号、issue 编号、数字与引语,均出自项目仓库的 README、CHANGELOG 与源码,快照截至二〇二六年九月末的 v0.8.6;对机制的描述对照过源码实现。至于‘透明与黑盒’‘信任作为产品’这类判断,是本书的观察与推断,不代表项目方的立场。”这段交代是全书写作伦理的基石。

但技术深度也有代价。部分章节对非开发者读者不够友好。比如第 3 章对 Cordis 插件体系里 inject、ctx.effect、fiber、ctx.get 与嵌套注入的讨论,如果没有插件开发经验,读者很难理解“为什么 webServer 不能进静态 inject”“为什么 betterSidebar 的硬声明会导致整个 web boot 被阻断”。这些内容对目标读者(AI Agent 工具链开发者)是必要的,但对更广泛的读者群(产品人、浏览器自动化工程师)可能构成障碍。序言里说“如果你是浏览器自动化工程师,登录态攻防那一章……是拿真实数据丢失事故换来的范式;如果你是产品人,终章关于‘透明与黑盒是两种信任模型’的讨论,或许比任何功能清单都更能帮你判断这个品类的下一段路”——这个读者定位是清晰的,但书中部分技术章节的默认读者仍然是“会读源码的人”。

另一个技术写作上的特点是:对“失败”的描写远多于对“成功”的描写。全书最有分量的段落,几乎都是事故复盘:第 7 章的 #61 数据丢失、第 9 章的 #40 worker 误杀与 #62 退出码断言、第 5 章的 #34 cwd 缺失导致观察窗永不启动、第 4 章的 #60 “假成功”问题。这种写法的价值在于,它把“工程”还原成了“一连串被解决的问题”,而不是“一套被设计出来的方案”。读者从中学到的不是“应该怎么做”,而是“如果这样做会出什么事”。这比正面陈述更有记忆点,也更接近真实工程的经验传递方式。

四、叙事:技术书里的“故事感”从哪来

技术书最难写好的部分,是让读者想读下去。这本书在这方面做了很多自觉的尝试,而且大部分是成功的。

最突出的叙事技巧是“以人为中心的场景开场”。第 1 章开头:“给 Agent 派一个活儿:查一下下周三从上海飞东京的最便宜航班。回车之后,对话框安静下来。在你看不见的地方,一个浏览器进程悄悄启动……”这一段不是技术描述,而是一个具体的、有画面感的场景。它先把读者放进一个熟悉的处境(让 AI 帮忙查航班),再揭示这个处境里的问题(过程看不见)。第 10 章结尾又回到同一个场景:“同样的任务,同样的几分钟,如今的差别是:对话框安静下来的时候,旁边那扇小窗亮着——你看见日期被填进搜索框,看见价格从低到高排开,看见它停在那个滑块前,等你。”首尾呼应,完成了一个完整的叙事弧。

另一个叙事策略是“把版本日志当编年史写”。第 3 章的兼容工程、第 5 章的观察窗演进、第 7 章的登录态攻防,都不是按“功能模块”组织的,而是按“时间线”组织的。读者跟着版本号往前走:v0.2.0 有了小球,v0.5.0 修对了字段,v0.6.1 立下单实例守卫,v0.7.0 状态灯学会呼吸,v0.8.0 住进侧边栏,v0.8.5 登录态开始安全过手,v0.8.6 把“不被看”的选择权交还主人。这条时间线本身就是故事,读者会想知道“下一版又出了什么事”。

第三个叙事技巧是“用具体数字替代形容词”。作者很少说“性能很好”“速度很快”,而是说“425MB 的空闲内存”“2 到 4 秒的冷启动”“每秒 10 到 30 帧”“178 毫秒的中位决策耗时”“7.07 秒完成查票”。这些数字不是堆砌,而是有对照的:425MB 对 2-4 秒的取舍、20 帧对 178 毫秒的矛盾、4MB 输出上限对 120 秒工具超时的预算关系。数字在这里承担了论证功能,而非装饰功能。

第四个技巧是“给抽象机制配一个可记忆的短语”。“逃生舱”“共同工作面”“接头暗号”“唯一写入者”“狼来了”“镜子”“账单”“门牌与番号”——这些短语不是营销口号,而是对复杂机制的压缩命名。读者可能记不住 withWarmupRetry 的六个正则,但会记住“门还没开”这个判断标准;可能记不住 runWithStaleSpaceRetry 的完整逻辑,但会记住“名字是跨重启稳定的,数字不是”。

但叙事上也有值得商榷的地方。全书偶尔会出现“过度文学化”的段落,尤其在观点部分。比如第 8 章末尾“伙伴关系”一节,虽然作者开头就声明“这一节是本书的观点,不是项目方的主张”,但“伙伴”这个词的引入仍然显得比前文的论证力道更重。第 10 章的部分段落也有类似情况,比如“灯从出厂的关闭位被拨开了”这样的表述,在技术章节里是精彩的收束,但在哲学章节里连续出现时,会略微削弱论证的密度感。这不是说观点不能有文采,而是说当文采成为主要表达方式时,读者可能会忽略观点本身的论证结构。

五、语言:克制、精确与偶尔的翻译腔

这本书的语言风格整体上是克制而精确的。它不炫技,不用大词,很少出现“颠覆”“革命”“赋能”这类被技术营销用滥的词汇。它更愿意说“看得见”“控得住”“活得下”——这些词朴素,但准确。

一个值得注意的语言特征是:大量使用短句与并列结构。比如“进程是过客,浏览器才是住户。”“日志说‘点击成功’,观察窗让你看见点在了哪、点完页面变成了什么——文本陈述与像素现场的区别,就是证词与证据的区别。”“门开着,才谈得上谁帮谁。”这些句子单独摘出来都像格言,但放在上下文里并不突兀,因为它们承担的是总结与转折的功能,而非装饰功能。

另一个特征是对技术术语的处理方式。作者对英文术语几乎不做强行翻译,而是保留原文并给出中文解释:capability seam(能力缝)、heredoc、fiber、junction、screencast、sentinel(哨兵行)、lease(租约)。这种做法在技术写作里是合理的——术语的准确性优先于语言的纯粹性。但个别地方的翻译腔仍然可见,比如“refusing 这个现状”(序言)这种中英混杂的表达,读起来不够顺畅。序言里“本书写的,就是一个 refusing 这个现状的开源项目”这句话,如果改成“一个拒绝接受这个现状的开源项目”,会更自然。

语言上的另一个特点是“注释式写作”。全书大量使用括号、破折号、引号来插入补充信息。这种写法在技术文档里常见,在书稿里则需要控制密度。这本书的括号使用大体上是节制的,但个别段落(尤其第 3 章和第 5 章)会出现连续多个括号注释,读起来会有“信息过载”的感觉。比如第 3 章对 dsh-plugin.json 的拆解,一段话里出现了 facets.host、apiVersion、requires.contracts、OpenExternal、Notification、permissions、x-dsh-tui、compat.hosts 等多个字段名,每个都带简短解释,信息密度极高。这种写法对“查阅型读者”是高效的,对“线性阅读型读者”则不够友好。

六、观点:事实与判断的边界划得清楚吗?

序言里作者明确交代了事实与观点的边界:“书中所有版本号、issue 编号、数字与引语,均出自项目仓库……对机制的描述对照过源码实现。至于‘透明与黑盒’‘信任作为产品’这类判断,是本书的观察与推断,不代表项目方的立场;行文里凡是到了观点段,都会明说。”

这个承诺在书中基本兑现了。技术章节(第 2-7 章、第 9 章)的绝大部分内容都是事实陈述与机制拆解,观点只出现在每章末尾的“章末”段落,且通常以“值得记下的是”“更值得警惕的是”这类标记词开头。哲学章节(第 8.4 节、第 10 章)则明确标注为观点,第 8.4 节开头就说“先立字据:这一节是本书的观点,不是项目方的主张——ego-browser 的 README 从未使用‘伙伴’这个词,以下推论的分量由书名承担。”

这种边界意识是值得赞赏的。技术写作里最常见的伦理问题,就是把作者的推断包装成项目的“设计意图”——说“项目这样做是为了……”的时候,实际上作者并不知道项目作者的真实想法,只是从代码里倒推的。这本书在处理这类问题时相对谨慎:当它说“注释里写明了动机”时,通常是真的引用了源码注释;当它说“这大概是一个常驻 agent 能给出的最体面的账单”时,读者能看出这是作者的评论,而非项目的自述。

但观点的分布仍然有可优化之处。第 10 章的部分判断,比如“速度决定 agent 能跑多快,可见性决定人敢让它跑多快”,虽然有力,但缺少更系统的论证。它更像是全书的“论点收束”,而非“论点展开”。如果能在第 1 章或第 10 章增加一段对“速度与可见性”关系的更详细分析——比如引用更多生态案例(Jev、browser-use、Pinchtab、HERMES)的对照——这个判断会更有支撑。目前它的说服力主要来自前文的积累,而非自身的论证。

另一个值得讨论的观点处理是第 4 章对“三件套黑盒”的对照。作者在 4.2 节明确说“本章的哲学分析沿同一条纪律走:不裁判高下,只分析粒度如何改变模型的处境”,并且确实做到了不贬低竞品。但“三件套黑盒”这个命名本身就有一定的倾向性——“黑盒”在全书语境里是一个有负面含义的词(第 1 章“黑盒之痛”)。如果作者真的想保持中立,或许可以用更中性的描述,比如“粗粒度路线”或“三工具路线”。当然,这个选择也可能是刻意的:全书的主论点就是“透明优于黑盒”,在这个框架下,“黑盒”是一个有立场的术语。作者在 4.2 节末尾也承认了这一点:“两种哲学最正面的对照”。这种“先声明立场,再展开分析”的做法,比假装中立更诚实。

七、细节:那些让技术书“活起来”的瞬间

技术书的品质,往往体现在细节的处理上。这本书有几个细节值得单独拎出来说。

第一个细节是“注释考古”。作者不仅引用代码,还引用代码注释,并且会追溯注释的历史。比如第 7 章引用 login-import.ts 头部注释时,特别指出“这段注释是实测结论,不是文档转述”,并注意到注释里标注了实验平台与版本(Edge 140 + Windows)。第 9 章拆 --no-sandbox wrapper 时,注意到注释里的“它只添加这一个开关,不改任何其他启动参数”。这种对注释的重视,让读者感受到这个项目的工程文化是“写注释如写遗嘱”——每一条注释都可能成为后来者的路标。

第二个细节是“数字的上下文”。作者引用数字时,几乎从不孤立地给数字,而是给出对照。425MB 对 2-4 秒、20 帧对 178 毫秒、4MB 输出上限对 120 秒超时、12 帧缓存上限对 30 帧 worker 上限。这些对照让数字有了意义,而不只是事实。更重要的是,作者会解释数字的来源:425MB 是“实测”,2-4 秒是“冷启动实测”,178 毫秒是“中位耗时”。这种对数字来源的标注,是技术写作的基本功,但很多作者会忽略。

第三个细节是“命名的故事”。全书对命名有特殊的敏感:ego-cast-worker 的命名、dsh-ego-browser 的包名与装载行名的关系、@dsh-external/ego-browser 旧别名的退役、win32-desktop 伪 display 的命名、reapedFor 变量的命名。这些命名故事看似琐碎,但它们是“工程决策”最直观的体现。一个名字的选择,往往牵出一整条技术约束链:junction 别名为什么用 ego-login-import- 前缀、EGO_ISOLATE_SPACES 为什么默认关、dsh-auth cookie 为什么要求 SameSite=Strict。命名是工程的化石层,这本书对这个化石层的挖掘,是它技术深度的体现。

第四个细节是“失败路径的描写”。多数技术书只写“怎么做”,这本书花了大量篇幅写“做错了会怎样”。第 7 章的 #61 事故复盘是最完整的例子:从备份、启动、读取、关闭、还原五步流程,到异步 flush 的时序竞争,到第二层兜底的失守,到最终的四条纪律。这个复盘的价值不仅在于“这个故事很精彩”,更在于它展示了一个真实工程系统如何在“每一步都自认合规”的情况下仍然丢失数据。这是任何正面陈述都替代不了的经验。

第五个细节是“对读者注意力的管理”。作者在序言里给了两条阅读建议,在每章开头几乎都有一个“本章要讲什么”的引导段,在每章末尾都有一个“章末”收束段。这种写法在技术书里是成熟的——它让读者知道自己在哪、要去哪、已经到哪。尤其第 5 章和第 7 章,章末的收束段几乎是全章论点的浓缩,即使读者跳过了中间的细节,也能从章末获得完整的逻辑。

八、短板:哪些地方可以更好?

前面说了很多优点,现在必须诚实地讨论短板。这本书的不足,大致可以分为四类。

第一类是重复表述。全书对某些核心概念的重复解释较多,比如“CDP 的两个老原语(截图与输入派发)”“观察窗的双后端”“worker 的单实例守卫”在不同章节反复出现。虽然作者用“第 5 章已详述”这类引用做了处理,但有些地方仍然会出现完整的重复描述,而非引用。比如第 5 章和第 9 章都详细讲了 worker 的启动与自愈,第 5 章讲的是“为什么需要 worker”,第 9 章讲的是“worker 的守卫与自愈”,两者的边界是清楚的,但部分技术细节(如 ego-cast.json 的作用、ensureWorker 的验身逻辑)在两章里都有较长的描述。如果第 9 章能更严格地引用第 5 章、只补充新内容,篇幅会更紧凑。

第二类是信息密度不均衡。第 3 章、第 5 章、第 7 章是全书信息密度最高的三章,第 8 章和第 10 章则相对较松。这种不均衡本身不是问题——技术书的节奏本来就应该有张有弛——但如果第 3 章的密度过高,可能会让部分读者在这一章掉队。一个可能的改进是:把第 3 章的部分内容(比如 tsdown 三产物形态、dsh-plugin.json 的完整字段列表)移到附录或在线文档,正文只保留与后续章节直接相关的部分。

第三类是部分判断缺少足够论证。第 10 章的“信任作为产品”是全书最重要的观点,但它的论证主要来自前文的积累,而非自身的展开。比如“可审计的 Agent 行为链”一节,提出了“行为链”的概念,但对其具体形态(如何记录、如何回放、如何防篡改)的讨论相对简略。如果这一节能结合第 4 章的“结构化调用”、第 5 章的“历史抽屉”、第 8 章的“self-observation”给出更具体的“行为链”设计草图,观点的分量会更重。

第四类是语言上的小瑕疵。序言的“refusing 这个现状”是一处明显的翻译腔。正文中个别地方也会出现类似的表达,比如“一个 refusing 这个现状的开源项目”“这本书不是使用教程——安装与上手请直接看项目的官方文档,两行命令的事”。这些句子的信息是对的,但读起来不够顺。如果能在出版前做一轮语言润色,把这类表达改成更自然的中文,阅读体验会更好。

九、目标读者:谁应该读这本书?

序言里作者自己给出了三类目标读者:AI Agent 工具链的开发者、浏览器自动化工程师、产品人。这个定位是准确的,但三类读者的阅读路径其实不同。

对 AI Agent 工具链的开发者,这本书的价值最高。第 3 章(插件接入)、第 4 章(工具设计)、第 5 章(推流架构)、第 9 章(健壮性工程)提供了大量可直接借鉴的工程模式:capability seam 的消费方式、结构化工具的注册基座、SSE 推流的双后端设计、worker 单实例守卫的实现、冷启动重试的签名表。这些内容不是“最佳实践”式的泛泛之谈,而是有代码、有注释、有事故记录的具体方案。

对浏览器自动化工程师,第 7 章(登录态攻防)和第 6 章(输入回传)是最有价值的部分。App-Bound Encryption 的应对策略、junction 别名的双重绕过、CDP 透传读取 cookie 的完整链路、像素坐标到 CDP 指令的映射、键盘代理的 IME 处理,这些都是真实项目中反复遇到的问题。尤其第 7 章的 #61 事故复盘,是任何做浏览器自动化的团队都应该读的“安全设计案例”。

对产品人,第 1 章(技术史)、第 4 章(两种哲学的对照)、第 10 章(透明与黑盒)是最相关的。这三章回答的是“为什么这个品类需要透明”“透明与黑盒的取舍是什么”“信任如何成为产品竞争力”。它们不要求读者会读代码,但要求读者对 agent 产品有基本的认知。

对开源项目维护者,这本书还有一层额外的价值:它展示了一种“如何把项目的工程细节转化为公共知识”的写作方式。PATCHES.md 的维护、CHANGELOG 的写法、README 的已知限制清单、供应链说明的透明度——这些实践本身,比书中的技术结论更值得借鉴。

十、结论:它做到了什么,还差什么?

回到最初的问题:这本书的质量如何?写作技巧如何?

质量上,它是一部扎实的、可信的、有独特价值的技术书稿。它的技术准确性高,对源码的引用是论证性的而非装饰性的,对失败案例的复盘尤其有价值。它的结构设计自觉,双螺旋的叙事线让技术章节和哲学章节互相支撑。它的观点表达克制,事实与判断的边界划得清楚。它的主要短板是信息密度不均衡、部分章节对非目标读者不够友好、个别语言表达有翻译腔。

写作技巧上,它最突出的成就是“让技术细节有故事感”。它用场景开场、用时间线组织、用数字论证、用短语压缩机制、用事故复盘传递经验。它不炫技,不堆砌术语,不用营销语言。它的语言朴素但精确,克制但有力量。它知道什么时候该详细(源码引用),什么时候该简略(背景交代),什么时候该停顿(章末收束)。

如果要说这本书最珍贵的品质是什么,我会选“诚实”。它诚实地交代事实与观点的边界,诚实地列出项目的已知限制,诚实地复盘数据丢失事故,诚实地承认“三件套黑盒”也是一种成立的设计,诚实地标注“这一节是观点,不是项目方的主张”。在技术写作里,诚实比文采更难得。文采可以让一本书畅销,诚实才能让一本书被信任。

如果要说这本书还差什么,我会说它差一份“更完整的对照表”。它把 ego-browser 与同名竞品插件的对照做得很细,但对生态里其他路线的对照(HERMES、chrome-agent-skill、Pinchtab、Browser Cluster、browser-use、Jev)多是点到为止。第 10 章试图把这些线索收拢,但收拢的方式偏向“提及”而非“分析”。如果能在某一章(比如第 10 章)增加一节对生态全景的系统对照——各家路线在“感知方式”“执行方式”“可见性设计”“登录态策略”四个维度上的异同——这本书的行业价值会更高。

最后,回到书名。《ego-browser-agent浏览器之书》这个标题是朴素的,甚至是有点拗口的。它没有试图用“透明革命”“看得见的 AI”这类更抓眼球的表述。但读完全书,会发现这个朴素的标题恰恰是合适的:它写的不是“一个产品的成功故事”,而是“一个浏览器 agent 的工程传记”。传记的价值不在于传主有多伟大,而在于它是否忠实地记录了一段值得被记住的工程实践。这本书做到了。

如果要用一句话总结我的评价,我会说:这是一部用写传记的耐心写出来的技术书——它不急于下结论,不吝于展示失败,不回避工程的复杂,最终在“产品说明书”与“技术文学”之间,找到了自己的位置。