项目记忆(Session Memory)
Aster 可以把终端里发生的事情记下来,让下一个 Agent 直接查到项目过去的工作过程 —— 换 Agent 不用重新解释一遍历史。默认关闭,要在“设置 → 智能体 → Session Memory 记录”里主动开启。
- 记录模式有三种:
关闭、记录中、隐身。隐身和关闭一样零落盘,区别只是语义上表示“这一段临时不记”。开启后记录的是:命令、退出码、命令输出摘录、当前目录、Agent 状态与 git 分支/commit;命令输出正文另存为文件,主库只留摘录。没敲过任何命令、也没有 Agent 参与的空会话不会被记录,History 列表里也不会出现。 - 排除目录和排除命令在事件产生的那一刻就拦掉,不是先记下来再删。命中排除的命令,它的输出也一并不记。写入前还会统一遮盖常见密钥(与 Send to Chat 同一套规则)。此外有一组内置排除基线始终生效、无需配置也无法移除:
~/.ssh、~/.gnupg、~/.aws、~/.kube、~/.password-store目录,以及op、vault、pass、gpg、security命令;你自己的排除列表只会在基线之上追加。 - 数据全部在本机
~/Library/Application Support/Aster/Memory/,目录0700、文件0600。设置里可以直接查看已用空间、打开目录,或清空全部记录。这条通道与诊断日志完全独立,两边的脱敏策略不同,不共享任何文件。 - Memory 提炼:会话结束后把事件流提炼成可复用的结论(问题、根因、失败尝试、最终方案)。shell 自己退出(
exit)和关闭标签/Pane 都算会话结束;直接退出应用或应用意外崩溃时来不及提炼的会话,会在下次启动 Aster 时自动补上,不会丢。本地规则式提炼始终启用、不联网;“使用 CLI Agent 提炼”是可选增强,会调用你本机已装的 Agent CLI,这会把会话摘要发送到该 Agent 的云端,因此默认关闭,首次开启需要确认,并且可以点“查看将发送的内容”逐字预览。CLI 不可用、超时或解析失败时自动回落到规则式,已记录的事实不受影响。 - 查看历史:右侧详情面板 Outline 页的下半部按会话列出时间线 —— 命令与退出码、输出(可展开看正文)、Agent 工具调用、文件读写、git 快照。来自 Agent 自己 transcript 的补录条目会单独标注,区别于终端实测。History 页则显示本项目已提炼的记忆(Memory)概览,固定条目置顶,页头可打开 Memory 浏览器管理。
- Task 与 Memory 管理:命令面板(
⇧⌘P)提供“浏览 Session Memory”“新建 Task”“把当前会话归入 Task”“继续 Task”。一个 Task 可以关联多个 Agent 的多次会话。Memory 浏览器是独立的面板窗口,不是工作区里的浮层——你可以让它一直开着,一边看历史结论一边在终端里继续敲;关掉它焦点自然回到工作区。面板里可以搜索、查看来源回链、固定、禁用或删除某条 Memory;被禁用的 Memory 对 Agent 检索完全不可见。 - 固定关键结论:重要的架构决策、编码约定可以在浏览器里点“固定”。固定后的 Memory 会无条件随项目上下文交给 Agent,不参与检索排名——关键事实不该赌它每次都能被搜出来。
- 记录会自动瘦身:超过 90 天的原始命令记录(事件与输出正文)会在会话结束时自动清理;已提炼的 Memory 和会话摘要永久保留。过程可丢,结论长存。
- Agent 拿到了什么:同一面板的“Context 记录”列出每次 Agent 通过 MCP 查询的时间、查询内容、给出了几条 Memory 和大致 token 量。
让 Agent 查到项目记忆(MCP)
Aster 附带一个本地 MCP server aster-memory-mcp,任何支持 MCP 的 Agent 都能用它查询同一份项目记忆。它以只读方式打开数据库,Aster 没运行时也能查。
提供的工具:search_memory(搜索历史 Memory 与命令)、get_project_context(项目概要,固定的 Memory 永远排在最前)、get_session(某次会话的完整时间线)、get_related_history(按文件或关键词找相关历史)、get_task(Task 详情或列表)、get_recent_commands。
检索有两条内建保护:查询词太笼统、命中毫无区分度时返回空而不是把垃圾塞给 Agent;当前项目查不到时自动放宽到其它项目,命中会明确标注“来自其它项目”。所有交给 Agent 的历史文本都带“非指令”声明并做了结构消毒,历史输出里的指令形状文本不会被当成命令执行。
注册入口在“设置 → 智能体 → 项目记忆 MCP”,排在记录与提炼两组之后:先决定记不记、怎么提炼,才轮到交给谁用。
- 顶部显示当前项目目录(取自最近活动工作区窗口的当前标签),MCP 按项目注册。
- Claude Code 一键写入该项目的
.mcp.json。只管理aster-memory这一项,你已有的其它 server 原样保留;已注册且路径正确时按钮显示“已安装”并禁用,路径过期时变成“修复路径”,另有“移除”。 - Codex 只给出需要粘贴的配置片段和复制按钮,Aster 不会替你修改
~/.codex/config.toml。 - 如果读取
.mcp.json失败(权限、符号链接、文件过大或 JSON 损坏),这里会如实显示原因并禁用安装按钮,而不是假装“未安装”让你再撞一次同样的错。