← 返回信息流
AI 资讯Hacker News·2 小时前

迈向全能型AI框架

原标题:Towards a Harness That Can Do Anything

速览

该研究提出一种通用AI框架,可适应多种任务与环境。其核心在于通过模块化设计实现任意功能的组合与调用。这一进展有望推动AI系统向更通用、更灵活的方向发展,降低任务定制成本。

AI 深度解读

背景

近年来,大语言模型(LLM)的能力飞速提升,但绝大多数应用仍局限于聊天窗格或简单的 API 调用。作者认为,真正的潜力在于让 LLM 能够自主、灵活地与环境交互,像一名真正的“智能体”一样执行复杂任务。然而,现有的“套件”(Harness)——即连接 LLM 与外部世界的中间层——往往过于臃肿、不透明,且容易在长时间运行后出现记忆退化或错误累积。作者结合多年观察和经验,提出了自己关于如何构建理想套件的思考,并介绍了正在开发的项目 Ambiance

核心内容

好的套件应具备的四个特性

  1. 对智能体而言自然直观:套件的设计应以 LLM 的理解方式为中心,而非人类开发者的一厢情愿。
  2. 完全透明:智能体的所有行为都应可审计、可追溯,使其能够自我发展或修复(或事后审查)。
  3. 尽可能精简且灵活:避免不必要的复杂性,保持模块化。
  4. 错误与更新存活:不随时间产生内存损坏或性能退化,确保长期稳定运行。

初步真理:从实践中总结的关键教训

  • 尽可能追求确定性:LLM 应自主选择目标,但达成该目标的推理过程应当清晰定义,或由一系列定义明确的步骤组成。
  • 核心 prompt 应尽可能小:LLM 应在运行时动态选择需要加载的技能(skills),而非将所有内容塞进上下文。
  • LLM 在接近上下文限制时会开始“发疯”:因此必须避免浪费 token。

不玩概率,玩智能体

一个好的套件必须充分利用 LLM 在训练数据中已经掌握的编码知识(尤其是系统管理和编程)。LLM 对 Unix/Linux 环境非常熟悉,因此套件应提供一个它已经习惯的环境,而非强行引入全新范式。同样,宝贵的上下文不应浪费在文件发现、遍历等琐事上——好的套件要让委托变得简单高效。同时,套件应在后台默默完成日志记录、合理性检查、安全防护、数据清理等工作,而在 LLM 感知中保持轻盈。

可审计性、日志与自我修复

一切都有漏洞,所有智能体最终都会失败。失败分为两类:

  • LLM 层面的失败:无法直接修补,但可以通过套件减轻风险。
  • 套件层面的失败:可以恢复,且由于 LLM 的回合制特性,应在运行时即可修复。

修复缺陷需要两样东西:良好的日志清晰的错误信息

统一数据层:向 Unix 哲学致敬

作者提出一个假设:Unix/Linux 环境本身就是一个天然候选,只需稍加修改即可成为智能体套件。Unix 哲学(Ritchie 和 Thompson 的三大信条)完美契合当前问题:

  1. 编写只做一件事且做得好的程序;做新工作时重新构建,而非添加新功能。
  2. 编写能协同工作的程序,让一个程序的输出成为另一个程序的输入。
  3. 编写处理文本流的程序,因为文本是通用接口。

作者认为,当前套件的问题正是违背了这些原则:过于复杂、试图做太多事、智能体轨迹定义不清。根源在于智能体无法拥有对自己行动的自主权(agency)。因此,他们推导出设计套件的新原则:

  • 编写模块化、透明的工具,每个只做一件事且做得好,并且要“大声失败”(fail loudly)。
  • 编写能协同工作的工具、技能和连接器:技能定义工作流,工具是执行手段,连接器是智能体操作的数据。
  • 文本流是通用接口,而在文本处理上,语言模型拥有主场优势。一切都应是纯文本文件

Ambiance:作者对套件的具体实现

一切皆文件:外部数据源(如 JSON、curl 命令、复杂正则)应先由套件清洗成纯文本,再交给 LLM。通过将数据分类存入目录,可以节省大量 token。

遵循文件系统层级标准(FHS):Linux 的标准目录结构(如 /var 放日志,/etc 放配置,/home 放工作区)对 LLM 而言非常熟悉。因此,将外部数据源映射到虚拟文件系统(VFS)中,能让智能体感到“宾至如归”。同时,人类和 LLM 都可以轻松通过 grepfindwhich 等工具审计和检索。

映射关系:作者使用以下映射(部分为 1:1 对应,例如日志→/var/log,配置文件→/etc,工作区→/home)。

“内核”:传统始终在线智能体(如 OpenClaw)采用事件驱动消息处理 + 心跳机制(默认每30分钟一次完整检查)。但问题在于:非推送消息的变化(如文件修改)只能在下一次心跳时被注意到。缩短间隔会浪费大量 token 做空检查;拉长间隔则可能导致延迟长达一小时。因此,Ambiance 构建了一个事件总线(作者误称为“内核”),通过文本文件上的游标监视文件系统变化,并据此调用 LLM(配合聚合策略处理高吞吐)。这样智能体不会错过任何通知,并且可以连接不同的“用户”(LLM 实例)来响应不同事件。

“内核”做重活:真正的内核是软件与硬件之间的中间层;Ambiance 内核则是 LLM 与外部世界之间的中间层,负责检查并确保 LLM 的所有行为安全、无危害。

“用户”:作者目前设计了三个默认用户:

  • root:处理所有系统级事务,特别是编写新驱动、二进制文件及修复旧文件。
  • pai:面向人类用户的 LLM,实际与外部世界交互。
  • librarian:记录 pai 擅长什么、不擅长什么,以及系统当天做了什么。

三个用户通过事件总线和 send-message 二进制文件持续通信。

尝试它:Ambiance 背后的理念很简单:模型的先验知识是你最便宜的资源。因此,一个由模型已经熟悉的东西(文件、用户、日志、文档)构建的套件,总是优于一个需要从头教它的套件。其余的一切都只是实现细节。

关键要点

  • 一个好的智能体套件应让 LLM 感觉自然、透明、精简且可靠,核心是减少认知负荷(token 消耗)。
  • 尽可能利用 LLM 已有的编码知识,尤其是 Unix/Linux 环境,避免浪费 token 去学习新范式。
  • 核心 prompt 应最小化,运行时动态加载技能;接近上下文限制时 LLM 表现会急剧下降。
  • 套件应提供确定性:LLM 选择目标,但执行路径应明确定义。
  • 一切
查看原文 →eardatasci.github.io