Mayo Pickles Newsletter
Mayo Pickles Newsletter #3
How we built our multi-agent research system \ Anthropic
Anthropic 使用 multi-agent 架构实现了 research system,看上去最初也是内部用的。
可以看到这个 research system 的架构跟 Claude Code 非常像,估计就是 Claude Code 修改了一下提供的 tools。和 Coding 一样,最多只有一层子 agent(本质是一个 tool),保持一个工作流。Sub-agent 的价值其实是上下文管理,对子 agent 来说一个新的上下文使其专注在具体的某件事情,对父 agent 来说避免被各种索引结果淹没。从这个逻辑上来说,之前各种花式 agent 架构,嵌套多层,带有角色的 agent 等等,意义都不大。
Getting AI to Work in Complex Codebases
虽然现在使用 LLM 可以飞快的实现一些功能效果,但这些好的效果更多的是在新项目的情境下,没有历史负担,任由 AI 进行发挥。但当将 LLM 使用到已经比较复杂的代码库时,效果就通常不尽如人意了。这片文章着重强调了如何进行上下文的控制,他认为 LLM 绝不仅仅是只用来完成原型或者玩具项目,但想要在生产中起作用需要很多工程上的努力。
- 要从跟高的抽象层级来看上下文的管理,同时要尽可能发挥人的作用,充分 review 修正关键步骤 AI 的结果。
- 如上一篇文章所说,sub-agent 绝不仅仅是角色的模拟,而是上下文管理。
- 想要依赖一段神奇的提示词就完成任务是不可能的,不仅要经常有意识的压缩上下文,而且要充分进行人工的 review。
- 越在早期的错误越容易放大,一行代码的错误就仅仅是一行代码,但是一个 plan 的错误导致的就是多行的错误代码,在往前的步骤例如业务逻辑的知识等会造成更多的错误代码,所以在项目的早期就要充分的进行人工 review,例如查看 agent 的做的 plan 是否合理。
- 关于 Code Review
- CR 最大的价值不是帮助找到问题,而是从整个团队层面对齐,让大家知道发生了什么,为什么要这么改。
- 现实中一旦 CR 的改动量很大,其实评审人很难详细的通过代码阅读知道实现是否合理,因此我们需要通过一个流程让团队成员对齐,让他们很容易看懂自己不熟悉的代码。这可以通过一些内部文档来实现,但作者则是通过 AI 的方式,也就是 specs、plans 和 research.
I can’t read 2000 lines of golang daily. But I can read 200 lines of a well-written implementation plan.
Announcing Cloudflare Email Service’s private beta
Cloudflare 宣布了自己的 email native 支持,现在可以在 Cloudflare worker 中直接调用 native API 发送接收邮件了。邮件存在了这么久,但其实机制上并没有很大的迭代,邮件营销等场景如何让邮件准确触达依旧是一个有挑战的问题。例如通常印象可达性的原因有:
- 发信 IP/域名缺乏信誉积累(新域名很容易被怀疑是垃圾邮件)
- 没有正确的 SPF、DKIM、DMARC 记录 进行域名认证
- 邮件内容触发垃圾邮件过滤规则
- 被用户举报或退订率过高
同时,如何邮件服务的运维、安全、合规、数据追踪与分析等等每一项都存在复杂度。不知道 Cloudflare 是否解决了这些问题。
-
AI 目前写复杂业务可能有难度,但是刷算法题可是太厉害了,所以现在 Leetcode 危机很大。Colf 是一个 AI 版本的 Leetcode,但它考察的不是执行速度,而是 token 数,给一个提示词,AI 输出解题代码,看谁在完成题目的情况下,输入加输出的 token 总数最小,有点意思。
-
最近把这本书读完了。 刘子超的又一本的旅行书,这次他去的是巴尔干半岛。 和之前看他关于中亚的书感觉一样,我看之前对巴尔干半岛完全一无所知。如果这份书以后最大的感触就是,巴尔干半岛上生活的人们其实并没有什么太大的不同,但是他们却属于不同的种族、不同的信仰,这导致了巴尔干半岛充满了各种各样的种族冲突。
种族真的是一个很有意思的东西,它在某种程度上并不仅仅是血缘的关系。虽然我们平时理解的种族应该是关于一个血缘、一个生物性的概念,但其实在很多情况下,这种种族的含义变成了某种信仰和价值观,用于划分不同的人士。这导致了种族其实可大可小。在一个团结的国家,同化了各种各样的人,但他们可以都是一个种族。但在充满了冲突的地区,很可能一个村子就是一个种族,隔了一条河到对面,就是另一个种族了。
巴尔干半岛上的种族冲突现在虽然属于和平时期,但并没有得到真正的解决,在未来一段时间还是一个随时会爆炸的炸药桶。