Skip to content

Memory 也需要维护者

编程 Agent 的认知环境

AI 可以维护 memory,但不能独自治理 memory。

这是 Aikito 的核心理念之一。

Coding Agent 擅长检索笔记、提炼持久结论、修复链接、发现过时措辞,以及把一次迁移应用到 许多文件。这些能力让轻量化的自动 memory 成为可能,却没有消除人的责任:判断一条 memory 意味着什么、应该归属哪里,以及它是否还应该继续存在。

一个完全自动化的 memory 系统,可能在结构上始终一致,在概念上却已经错了。

一次真实的重构

Chat Distiller 最初位于 Aikito workspace 内部。源码在那里开发,再导出到独立的公开仓库; 与它相关的架构、产品、合规和发布 memory 因此也都属于 Aikito 项目。

当 Chat Distiller 已经具备独立开发条件后,Agent 可以完成大部分机械迁移:

  • 对比规范源码与公开仓库;
  • 把唯一源码迁移到公开仓库;
  • 保留打包、隐私和验证门禁;
  • 注册独立的 Aikito project;
  • 移动笔记、修复索引和链接、同步 runtime,并执行测试。

但仅靠自动化并不能得到正确的最终设计。人的审查连续引入了几次语义修正。

首先,只迁移源码还不够。Chat Distiller 的 memory 仍属于 Aikito 项目,其认知作用域与新的 仓库边界互相矛盾。因此必须独立注册项目,并把五条产品专属 memory 一同迁移。

其次,一个共享 release skill 同时包含 Aikito、Chat Distiller 和另一个 Python 包的发布 流程。它在技术上可以复用,在概念上却是一个浅抽象:三个产品的源码、产物、验证门禁和发布 渠道完全不同。最终它被三个自包含的项目 skill 取代。

最后,版本规则仍保存在一条独立 memory 中,但这些规则实际属于发布时必须执行的行为。 这条 memory 被退役,规则进入每个 release skill。人的审查又纠正了一个细节:不只是 2.0.0,包括 1.0.02.0.0 以及以后所有 MAJOR 版本,都必须先取得用户明确授权。

在每一步,Agent 都能保证文件彼此一致;而人决定系统究竟应该表达什么。

维护不等于治理

Memory 维护包括:

  • 检索相关知识;
  • 提议值得长期保留的结论;
  • 更新过时措辞;
  • 发现重复内容和断链;
  • 移动笔记并验证迁移后的结构。

Memory 治理面对的是另一组问题:

  • 这件事现在还成立吗?
  • 它是知识、可执行策略,还是临时上下文?
  • 它应该属于全局、某个项目,还是应该退役?
  • 两个概念应该共享抽象,还是独立演进?
  • 哪条规则真正表达作者意图?
  • Agent 应该忘记什么?

前一组工作高度适合自动化;后一组工作涉及责任、产品判断和对未来方向的理解。

这不意味着人要逐条手工编辑笔记。更理想的循环是:

AI 检索、巡检并提出候选
人审查改变语义边界的决策
AI 执行迁移、修复、测试和报告
Git 保存决策及其历史

人的参与应该集中在影响意义、归属、规则和生命周期的变化上,而不是重复的文件操作上。

一种新的编程层次

传统编程主要描述机器应该执行什么。使用 Coding Agent 时,程序员还需要塑造另一个推理 系统工作的环境。

传统软件 Agent 认知环境
持久状态 Memory
可执行逻辑 Skill
配置与策略 Instructions
模块边界 Project scope
重构与迁移 拆分、合并、移动或退役知识
测试与可观测性 Verifier、状态检查和 Git diff

这是一种高层编程。被编程的对象不再只有应用程序,也包括 Agent 能看到什么、记住什么、 遵循什么,以及忘记什么。

程序员的角色因此向上移动:

  • 从亲自完成所有实现,转向定义意图并评价结果;
  • 从只管理代码架构,扩展到管理认知架构;
  • 从编写一次性 prompt,转向维护持久上下文和可执行策略;
  • 从接受知识不断堆积,转向持续重构知识。

代码仍然重要,但 memory、skill 和 instruction 会越来越多地决定 Agent 能否安全、一致地 修改代码。

为什么 Aikito 坚持用文件保存 memory

Aikito 不承诺一种悄悄记录一切的“魔法自动记忆”。它把 memory 和 Agent 资源保存在具有 明确作用域、可以审查的文件中,因为治理需要可见的边界。

纯文件和 Git 让我们可以:

  • 准确检查 Agent 将继承什么;
  • 在接受之前审查 AI 提出的修改;
  • 在项目归属变化时迁移知识;
  • 把一条被记住的规则转化为可执行 skill;
  • 让过时知识彻底退役,而不留下隐藏状态;
  • 理解认知环境在何时、为何发生变化。

Aikito 的目标不是把人从 memory 管理中移除,而是让人的判断上升到更有效的层次,同时让 Agent 承担下层维护工作。

在 AI 时代,程序员不再只编程软件,也开始编程那个与自己共同编程软件的认知环境。

English