Acontext:把 Agent 记忆写成可读、可改、可迁移的技能文件
Agent Skills as a Memory Layer
秒懂
- 它是什么?
- Acontext 是一个开源技能记忆层,把 Agent 运行中的经验蒸馏成 Markdown 技能文件,用工具调用代替向量检索。本文基于其 README 与仓库结构,分析它的存储与召回机制、部署方式、适用边界。
- 适合谁用?
- 适合希望 Agent 从错误中学习、且不想被向量数据库或黑盒记忆锁定的开发者。它把记忆暴露为 Markdown 文件,你能用 git 追踪、用编辑器修改、在多个框架间迁移。
- 能商用吗?
- 可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库最近一次提交在 63 天前。
- 用什么语言写的?
- 主要是 JavaScript(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决的是记忆不透明的问题
多数 Agent 记忆方案把经验塞进向量库或隐藏的上下文缓冲,用户看不到里面存了什么,错了也难改。Acontext 换了个思路:把记忆写成技能文件,也就是 Markdown 文件,Agent 每次运行后自动把学到的内容蒸馏进去。这些文件能被读取、编辑、分享,也能跨 Agent、跨 LLM 使用。目标用户是正在构建 Agent、希望它从错误中学习并复用成功经验的开发者,尤其是那些对黑盒记忆感到不安的人。
存储流程:从会话到技能文件的蒸馏
README 画了一条清晰的链路:会话消息先进入系统,当任务被标记为完成或失败时触发学习。接下来是蒸馏阶段,一次 LLM 推理从对话和执行轨迹中推断出哪些做法有效、哪些失败、用户的偏好是什么。然后 Skill Agent 决定写入哪个现有技能文件还是新建一个,并按照你定义的 SKILL.md 结构来写。最后技能文件被更新。整个流程的关键在于结构由你控制:你在 SKILL.md 里规定文件布局,系统只负责提取、路由和写入。这意味着记忆不是一团向量,而是有格式的文本。
召回机制:工具调用而非语义搜索
召回侧没有向量检索。Agent 被赋予 get_skill 和 get_skill_file 两个工具,由它自己判断需要什么,主动调用工具获取技能内容。README 称之为渐进式披露,强调是 Agent 在环内做决定。这种设计回避了 embedding 的调参和召回质量的不可控,但代价是 Agent 必须知道该调用哪个工具,而且每次调用都消耗一次工具调用的 token。如果你的 Agent 推理能力弱,可能不知道该取哪个技能,导致记忆形同虚设。
部署方式:云端免费额度或自托管
快速开始要求先到 Acontext.io 领取免费额度,通过引导获得以 sk-ac 开头的 API Key。想自托管的话,仓库提供了 acontext-cli。先执行 curl -fsSL https://install.acontext.io | sh 安装,然后需要 docker 和 OpenAI API Key。接着 mkdir acontext_server && cd acontext_server,运行 acontext server up。该命令会创建或使用 .env 和 config.yaml,并生成 db 文件夹持久化数据。默认 LLM 是 gpt-4.1,且要求模型支持工具调用。启动后 API 地址是 http://localhost:8029/api/v1,Dashboard 在 http://localhost:3000/。
SDK 与框架适配
官方维护 Python 和 TypeScript 两套 SDK,Python 包名为 acontext,TypeScript 包名为 @acontext/acontext。初始化客户端很简单,云端模式传入环境变量中的 ACONTEXT_API_KEY,自托管则传入本地 API 地址。README 强调记忆文件是纯 Markdown,任何能读文件的框架都能用,比如 LangGraph、Claude、AI SDK。技能文件可以打包成 ZIP 导出,在另一个 Agent 或另一个 LLM 环境里直接复用,不需要重新 embedding 或迁移。
局限性与适用边界
Acontext 不适合需要快速语义检索的场景。它明确放弃 top-k 召回,全靠 Agent 自己决定何时调用工具,这在长对话或复杂任务中可能增加延迟和 token 消耗。另一个限制是每次学习都依赖 LLM 蒸馏,这意味着每次任务完成或失败都要花一次额外的 LLM 推理,成本会随任务频率线性增长。自托管时还需注意,默认使用 gpt-4.1,意味着你必须有 OpenAI API Key,且模型必须支持工具调用。如果你用的是本地小模型或不支持工具调用的模型,这套机制就跑不起来。
同类方案的差异:向量库 vs 文件技能
主流的 Agent 记忆方案通常依赖向量数据库,把对话片段或摘要 embedding 后存起来,召回时做语义相似度搜索。Acontext 刻意避开这条路,它把记忆写成结构化技能文件,用工具调用按名获取。差异在于:向量库适合你不知道具体要找什么、只能靠语义模糊匹配的场景;Acontext 则要求 Agent 明确知道存在哪个技能并主动去取。前者的优势是召回灵活,缺点是结果不可解释、难以修正;后者的优势是透明可审计,缺点是依赖 Agent 的规划能力。另一个隐含区别是 Acontext 不锁定 API,文件可以导出到任何环境。
维护与升级成本
自托管版本用 docker 和本地 db 目录持久化,升级时你需要自己处理镜像更新和数据迁移。仓库显示最近有多个独立版本号,比如 sdk-ts/v0.1.21、ui/v0.1.14、package-claude-code/v0.1.3,说明 SDK、界面和 Claude Code 插件各自独立发版。这意味着你升级时可能面对多个组件的版本对齐问题。许可证是 Apache-2.0,允许商用和修改,但如果你修改了代码并分发,需要保留版权声明。云端模式则受其服务条款约束,README 只提到免费额度,没有说明数据留存期限,这是采用前需要向官方确认的点。
编辑结论
适合希望 Agent 从错误中学习、且不想被向量数据库或黑盒记忆锁定的开发者。它把记忆暴露为 Markdown 文件,你能用 git 追踪、用编辑器修改、在多个框架间迁移。不适合需要毫秒级语义召回、或不能接受每次学习都依赖 LLM 蒸馏成本的场景。自托管时先确认你的 LLM 支持工具调用,并准备好 OpenAI API Key。若走云端,先试用免费额度,确认 API Key 的权限边界与数据留存条款。采用前先验证蒸馏质量:用你自己的任务日志跑一轮,看技能文件是否真的可读、可复用,而不是空模板。
社区笔记