夜雨聆风学习资料网

ARTICLE · 1256810

AI 助手最长本事的一刻,是它选择不说话:复旦 NLP 的 A5 拆给你看

AI 助手最长本事的一刻,是它选择不说话:复旦 NLP 的 A5 拆给你看

复旦大学自然语言处理实验室最近往 Hugging Face 上放了个东西,叫 A5,一套主动式个人助手。文章 10 月 23 日发的,《Introducing A5: Proactive Personal Agent in Your Life-Long Context》,原文在 https://huggingface.co/blog/KYLN24/introducing-a5。现在是技术预览版 a5-0.3.1,代码没放出来。

这个实验室也提一句:复旦 NLP 官网自我介绍里写着由吴立德创建,四十多年前就在做中文自然语言理解和检索,发过国内第一套中文自然语言开源系统 FudanNLP。

说回 A5。有件事得先讲明白:它不是新模型,没有参数也没有权重。官方管它叫 A5 Harness,Harness 本义是挽具,就是套在马身上把力气变成拉力的那套皮带,放在这儿指包在大模型外面的运行时。模型你自己挑,只要能支持 tool calling(让模型去调外部工具)的 API 就行,Anthropic 格式或 OpenAI 格式都认。

安静也是个功能

这类产品现在都在往"主动"上卷,常见做法是让它多干活、多汇报。A5 里有一句反着来的,官方原话是 "A5 can remain quiet":没有值得推进的新事项时,它可以不出声。

这句话背后是一条流水线。Proposal Engine(主动建议引擎)先把上下文变化、历史交互、知识更新这些证据汇总起来,然后排队过五道闸:Proposal Agent 判断值不值得提;翻一遍建议历史,把已经做完、正在做、重复过的剔掉;再做校验、去重和频率控制。五道全过才进 Inbox,摆给用户的是三个按钮,Run、Edit、Reject。后台跑的这些活,还有建议真要执行的时候,都由 Harness 统一管,用什么工具、有没有权限,按各自的规则来。

文档里还有一条:被用户拒绝过的建议,下次要再提,必须说清楚出现了哪些实质变化。等于不许它假装你没拒绝过,重新开口时得先交代这次和上次差在哪。

记忆是一堆 Markdown,用 Git 管

A5 的记忆全是 Markdown 文件,版本交给 Git。市面上做"AI 记忆"的,多数把你的偏好编码成向量塞进数据库,你看不见也改不了。A5 这边就是一堆文件,能打开看,能手动改,改错了能回滚。

里面分两层。MEMORY.md 放跨任务都好使的认识,每次会话开始就进上下文;详细笔记放具体事实和适用条件,用到了再读。按范围又分 Workspace Memory(当前项目的知识、决定、约束)和 User Memory(跨项目的个人背景和习惯)。

取记忆这步不占前台。用户消息一进来,后台先用 BM25 从两层记忆里拉候选——BM25 是老牌关键词检索算法,图书馆查卡片那种思路,不用神经网络——再由 Prefetch Agent 对着当前对话筛一遍,补进主 Agent 的上下文。还有个细节我特地记了下来:它复用主会话的系统提示词和对话前缀,官方明说是为了提高前缀缓存的利用率。前缀缓存就是服务商对重复出现的对话开头做缓存,命中了不重算。这种句子一般是真付过账单的人才写得出来。

写入这边也有分工。主 Agent 干活的时候自己就能改记忆;一轮交互正常结束后,后台还有个提取 agent 再过一遍,看有没有值得留下的新东西。如果主 Agent 这一轮已经动过记忆,后台这步就跳过,省掉重复处理,也避免两份写入同时改一个文件。

Autodream:趁你不用的时候自己整理

整套东西里我最想单独说的是 Autodream,用户不说话时后台自己跑的整理任务。

它干这几件事:整理 Context 索引的主题结构,改之前先在独立的候选索引上做完,通过校验才发布,改坏了不伤正在用的那份;检查自上次 Git 版本以来变过的记忆笔记,合并重复、修正或者移除过时内容;把反复验证过的经验往 User Memory 里升格。

有两处细节值得说。一是矛盾的记录不强行合并,不同条件下成立的判断允许并存,只有没确认过的冲突才标"待确认"。二是压缩概览之前先把细节落进笔记、再回读核查,确认没丢信息才压;长期没用到的记忆是归档,移出默认检索范围,不删,你还能翻出来恢复;重要的记忆可以单独保护起来,就算很少被用到也不挪走。

哪些经验往 User Memory 里升格,也是挑过的:只有在别的项目里也用得上的才并进去,项目专属的要求留在各自的范围内。

这两条合起来,能看出它对记忆的态度偏保守:偏好是带条件的,会跟着项目、时间甚至心情变,所以它只管保真和可追溯,不替你判定哪条才对。

Workspace Wiki:整理出来的东西你能改

Autodream 跑完,或者一轮交互正常结束之后,Harness 会按需起一个 Wiki Agent,把工作区里的资料、讨论和已经得出的结论挑出来,组织成互相链接的主题页面,形成一份给你看的知识库,官方管它叫 Workspace Wiki。

页面留着引用来源和版本历史,所以你能读、能核对出处、能改。和记忆一样走 Git 版本,整理错了能回滚。这点跟常见的 Agent 不太一样:多数 Agent 整理出来的中间产物只活在它自己的上下文里,你看不见,也没法改。

文件改了,下一轮调用前它就知道

Diff Engine 一直盯着接进来的工作空间。文件改了或者网页内容变了,它先判断这次变化和手头的任务有没有关系,必要的话回查原文,然后把新信息和影响在下一次模型调用之前塞进上下文。ReAct 循环是这类 Agent 的常规跑法:想一步、调一次工具、看一眼结果、再决定下一步。A5 等于在这个循环里接了根管子,资料一变,模型下一轮拿到手的输入就变了。

资料的组织方式也提一句:Context 节点对应具体的文件或网页,语义节点按主题把它们拢成层级,先看主题定方向,再回原文核细节。

想今天就用的,装 a5-0.3.1、配自己的 API key 就能跑。想照着抄的,等 GitHub 开源,Proposal Engine 的五道闸和 Autodream 的记忆维护最值得看。

  • Hugging Face 官方文章:https://huggingface.co/blog/KYLN24/introducing-a5
  • 安装包(v0.3.1 技术预览):https://huggingface.co/buckets/KYLN24/a5-release

相关学习资料