大多数 AI 智能体拥有极佳的召回能力,但在判断哪些内容值得被召回时却表现得糟糕透顶。它们可以摄取数千页的内容,却会因为没人教它们如何忘记无关部分,而淹没在自身的上下文之中。Knowledge and Memory Management 版本 0.0.2 正是为了解决这一问题而生的。这不仅仅是一个小补丁,它重新思考了智能体存储、传输和优先处理已知信息的方式。

记忆问题

智能体通常会将每一段文本都视为神圣不可侵犯。一个原始网页会被连同其导航菜单、Cookie 横幅和页脚链接一起丢进存储空间。一段视频转录文本会带着所有的“嗯”、时间戳和赞助商广告原封不动地进入系统。一篇文章携带的广告文案标记可能比实际见解还要多。当进行检索时,系统必须在这些噪音中筛选信号。这种浪费体现在两个方面:你的上下文窗口被垃圾信息挤占,而你的基础设施账单也会随之增加,因为你正在为处理和嵌入无意义的文本而付费。

扩展性问题同样令人沮丧。大多数早期阶段的智能体通过硬编码路径绑定在单台机器上。一旦将项目从你的笔记本电脑迁移到服务器,或者从一个 VPS 迁移到另一个 VPS,你就会花上整个下午用 grep 搜索配置文件,以修复损坏的引用。智能体不再是软件,而变成了一个只能存在于特定房间内的、脆弱的艺术装置。

V0.0.2 有哪些变化

此版本正面解决了这两个问题。它引入了一种可移植的路径方案和一个统一的摘要流水线,在知识进入记忆之前对其进行清洗。其结果是,智能体变得更易于迁移,运行成本也更低。

你不再需要与基础设施作斗争。你不再需要将臃肿的文档塞进有限的上下文中。智能体只会变得记忆力更好。

通过 $AGENT_HOME 实现设计上的可移植性

最实用的单一变化是引入了 $AGENT_HOME 环境变量。系统触及的每一个路径——知识库、工作记忆、缓存的摘要、会话日志——都会相对于此根目录进行解析。这意味着你可以将整个智能体目录移动到任何位置,而无需修改一行代码。

以典型的迁移为例。昨天你的智能体运行在 DigitalOcean droplet 的 /srv/ai-agent 路径下。今天你想在本地运行它,或者把它交给队友。在过去,你会发现硬编码的绝对路径散落在 JSON 配置、Python 脚本和 shell 包装器中。你会通过 sed 修改十几份文件,祈祷自己抓住了每一个引用。有了 0.0.2 版本,你完全可以跳过这些步骤。只需复制文件夹,设置 export AGENT_HOME=/your/path,然后运行即可。摄取脚本、记忆索引和检索层都会自动对齐,因为它们会询问操作系统“家”在哪里,而不是假设自己已经知道了。

这种可移植性不仅是为了方便,它还让你的设置变得可复现。你可以在版本控制中跟踪你的知识目录,而不会因为包含仅在你的机器上有效的路径而污染仓库。队友克隆仓库,将 $AGENT_HOME 指向他们自己的文件系统,即可摄取他们自己的数据。你的 CI 流水线可以启动一个全新的智能体,设置一个变量,并在无需为每个环境重写配置的情况下验证其行为。

如果你将智能体作为 systemd 服务运行,请将该变量添加到服务单元中。如果你将其容器化,请在 Dockerfile 或 compose 文件中传递它。如果你在多个 shell 中工作,请将其放入 .bashrc.zshrc 以使其持久化。这种设置刻意设计得非常“枯燥”,因为基础设施本就应该是枯燥乏味的。

三个来源,一个清洗流水线

系统从三个特定渠道摄取知识:

  • 网页。 这些内容包裹在 HTML 模板代码中。真正的核心内容可能只有三百字,却隐藏在三千字的标记、导航和评论区之中。
  • 视频转录文本。 语音转文本的输出是出了名的冗长。填充词、重复、时间戳和离题的闲聊会产生低密度的信息流,在不提供见解的情况下消耗大量的 token。
  • 文章。 格式千差万别。有些发布的是干净的文本,而另一些则通过广告、时事通讯订阅框和社交媒体嵌入内容破坏了阅读体验。

0.0.2 版本不会将这些视为需要单独照管的孤立数据。相反,它在所有内容进入工作记忆之前,将这三者全部通过同一个摘要层。该层会提取主张、流程、数据点和关系。它会丢弃人类在阅读时自然会略过的噪音。

为什么摘要是一种扩展策略

人们往往倾向于将摘要视为一种“奢侈功能”,即有了很好,但并非必不可少的东西。这是错误的。对于语言模型智能体(agent)而言,摘要是一项扩展需求。

上下文窗口是有极限的。检索预算是有成本的。花在 Cookie 横幅或视频赞助商读词上的每一个 token,都是你无法用于推理的 token。当你的智能体准备回答时,它并不会因为周围有更多的文本而变得更聪明。它会因为周围有“正确”的文本而变得更聪明。

通过在摄取阶段剥离噪音,系统压缩了信号。你的智能体可以在相同的上下文预算内参考更广泛的来源。十份精炼后的文档可以容纳在以前两份原始文档都难以处理的空间内。正是这种密度让智能体能够从管理五个来源的玩具原型扩展到管理数百个来源的生产系统。内存占用保持在可控范围内。检索质量得到了提高,因为无关的重叠消失了。Token 成本降低了,因为你不再需要为嵌入(embed)和查询模板化内容(boilerplate)付费。

这并不是指那种丢弃细节的激进有损压缩。这是一种编码进流水线中的编辑判断。摘要保留了技术细节、命名实体、因果关系和指令步骤。它移除了格式碎片和对话填充词。

入门指南

设置过程刻意保持极简,因为该系统的设计初衷就是不干扰你的工作。

打开终端并设置根路径:

export AGENT_HOME=/your/path

通过将该行添加到你的 shell 配置文件中来使其永久生效,或者将其注入到运行智能体的任何编排层中。保持下层的目录结构一致。智能体期望其文件夹——无论你将其命名为 knowledge/memory/summaries/ 还是其他名称——都相对于该根路径存在。一旦变量生效,只需将智能体指向你的网页、转录文本和文章即可。摄取和摘要流水线会处理剩下的工作。

如果你正在从早期版本迁移,过程同样简单。将现有数据移入新的 $AGENT_HOME 层级结构,更新变量,并验证智能体是否能正确解析路径。无需迁移脚本。无需数据库模式(schema)升级。只需为智能体在磁盘上的位置提供单一事实来源。

核心要点

更好的内存管理并不是为了囤积更多数据,而是为了精选你已有的数据。0.0.2 版本将可移植性和摘要视为一等公民,而非事后补救。你获得了在不同机器之间迁移智能体而不会破坏任何内容的自由,并获得了真正包含“上下文”的上下文窗口的高效性。

设置你的主目录。为智能体提供真实的来源。让系统剥离垃圾信息。你将花更少的时间调试路径错误,花更少的钱处理噪音,从而花更多的时间去使用智能体真正学到的知识。


Source: https://dev.to/mage0535/thinking-1-analyze-the-request-12go

Community: https://t.me/GyaanSetuAi