memory Power
消息入口 Jev 判定、即时召回和 Session 增量记忆
memory 由 City 持有唯一实例。宿主处理入口判定与周期整理,聊天 Agent 不负责自动调度。
判定协议
{
"save_scope": "workspace",
"should_recall": true
}save_scope 是 Jev 的 choice 问题,选项为 none | user | workspace | agent | mixed;should_recall 是 boolean。非 none 创建持久保存标记,mixed 在后台拆分,不能直接作为存储范围。
召回在本轮模型处理前执行,结果作为低信任参考内容进入模型输入副本。正文总预算为 2,000 字符,不修改 canonical Session Messages。模型处理过程不会重新逐步判定。
Agent Core Memory:PROFILE.md
remember.mode 采用 profile | knowledge 枚举;默认 knowledge 写入按需检索的知识库,profile 追加每轮生效的 Agent 约定。
Agent 目录的 PROFILE.md 是 Core Memory 的唯一文档源,由 MemoryPower 负责追加、加载与每日优化,不修改 SOUL.md。每轮准备上下文都读取它,包括新 Session,不依赖 Jev 的召回判断。
{
"target": "agent",
"mode": "profile",
"content": "主回答前提醒使用英语,并简要纠正英文表达。"
}此操作表示对该 Agent 全部使用者生效的约定,个人 User 信息不得自动回退到 Agent Profile。写入立即完成,返回 profile_id;它不是 wiki 的 memory_id,不能传给普通 read/revise/forget。已有 wiki 偏好不会自动迁移。
添加无篇幅上限。每天检查一次,正文超过 2,000 Unicode 字符才调用配置的文本模型优化;2,000 是目标,不是截断上限。模型提出精确替换,代码校验唯一匹配、不重叠、版本未变化并保留来源标记,提交前备份原文。不能为达标删掉有效约定。
宿主 actions memory.profile_read、memory.profile_edit、memory.profile_status 供管理调用,必须指定已登记 Agent;编辑携带读取返回的 version 与 old_text/new_text 列表。专属界面尚未接入。
周期整理
City 每 30 分钟扫描有未处理标记的 Session,读取稳定消息序号之后的完整 turn。文本模型提取短记忆、分类和来源;代码校验范围,精确重复直接跳过,需要补充或纠正时再合并。
批次先保存写入计划,全部写入成功后推进游标。重启可以恢复计划;Jev 失败保留补判标记,后台补判不会向已经结束的 turn 注入召回。超预算输入按完整 turn 边界处理,文本截断时记录可观察警告。
不再自动生成每轮回复的完整 capture job,也不重复保存整个 Session 为 evidence。
范围与类型
| 写入目标 | 含义 |
|---|---|
user | 可信用户记忆;需要宿主身份解析器 |
current_workspace | 当前 Workspace 的独立共享记忆 |
agent | 当前 Agent 私有记忆 |
User 和 Workspace 采用单份记录供授权 Agent 读取,不复制。用户仅对某 Agent 的偏好仍属于 User,并限定适用 Agent。自动流程不访问旧的全局 City 范围。
类型沿用 fact、preference、decision、episode、procedure、document。提问或 Agent 建议不等于已确认决策,Agent 声称执行成功也不作为执行事实。
装配与配置
const memory_power = new MemoryPower({
platform_root_path: "/absolute/platform-root",
automatic: {
enabled: true,
decision_model_id: "jev-latest",
formation_model_id: "configured-text-model",
// 由宿主提供:根据真实消息身份返回平台 user_id,不能解析用户文本。
resolve_user: resolve_trusted_message_user,
},
});resolve_trusted_message_user 是应用需实现的可信身份函数,不是内建 API。没有身份映射的聊天入口不可启用 User 共享;不能使用模型付费账户或 chat_id 冒充消息发送者。
也可在 Memory Power 配置中设置 enabled、decision_model_id、formation_model_id,重新启动 City 后生效。默认自动流程关闭。Jev 可通过 Federation 目录发现,文本模型必须明确指定;模型缺失时正常聊天继续,待处理状态保留。
宿主 action memory.automatic_status 返回模型选择、身份解析器是否可用、待处理数量、重试时间和失败原因,不返回对话正文。
存储与 actions
Agent 内容位于 agents/<agent_id>/memory/wiki;共享内容位于 Memory 根的 users/<encoded-id>/wiki、workspaces/<encoded-id>/wiki。运行状态位于 runtime/sessions,只保存标记、游标和写入计划。
公开 memory_id 是逻辑标识,例如 workspace/<encoded-id>/wiki/<topic>,不是物理路径。原样传给 read、revise 和 forget。
Actions:status、list、search、read、remember、digest、revise、forget。显式 digest 保留其归档行为,不等同于周期短记忆整理。
{
"target": "current_workspace",
"content": "这个项目统一使用 pnpm。",
"topic": "project-overview",
"memory_type": "decision"
}现有 Desktop 管理页仍提供旧 City 与 Agent 浏览入口;新的 User / Workspace 分类导航尚未同步,项目记录可通过领域 actions 访问。不要把旧共享入口当作 User 记忆管理界面。