如何让 Agent 拥有跨会话长期记忆:PenguinHarness 记忆与 Vault 密钥管理详解
如何让 Agent 拥有跨会话长期记忆PenguinHarness 记忆与 Vault 密钥管理详解【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harnessPenguinHarness 是一款开源的本地优先多智能体应用开发平台它内置了Agent 跨会话长期记忆Memory和Vault 密钥管理两大能力Agent 会把用户偏好、项目决策整理成 Markdown 笔记在每次新会话中自动召回而 API Key 等敏感凭据则统一存放在密钥保险柜Vault里只注入命令的环境变量模型永远看不到密钥的值。本文用一次读的时间讲清这两块机制的设计与使用方法。为什么 Agent 需要跨会话记忆 大多数 Agent 工具都有一个共同毛病关掉会话就失忆。你上周告诉它我们项目统一用 pnpm这周它又开始建议你 npm同一个项目里换几个会话之前的架构决策要反复解释一遍上下文压缩Compaction只能救活当前会话的短期状态救不了长期知识。PenguinHarness 的做法是让 Agent 自己维护一套长期存储——位于agent_state/memory/下的 Markdown 笔记。它保存的正是那些后续会话无法从代码库重新推导的东西用户是谁、长期偏好、项目决策及理由、指向外部系统的入口。记忆不是上下文压缩。压缩保留的是单个 Session 的短期工作状态Memory 是 Session 结束之后仍然幸存的东西。设计细节可参考该功能的完整说明changelog/0.2.2/2026-08-07-memory.zh.md。记忆是如何工作的两个作用域 一份索引PenguinHarness 的记忆分两个作用域都只属于同一个 Agent绝不与其他 Agent 共享作用域目录存什么谁读取用户记忆memory/user/用户是谁、长期偏好、不绑定代码库的参考资料每个会话Workspace 记忆memory/workspace-key/某个项目里的决策、约定、外部系统入口同 Agent 在同 Workspace 的会话目录结构长这样agent_state/memory/ ├── user/ # 用户作用域随 Agent 一同创建 │ ├── MEMORY.md # 该作用域的索引 │ └── prefers-pnpm.md └── my-app-a81f32c4/ # 某个 Workspace 的记忆 ├── MEMORY.md └── testing-conventions.md几个值得注意的设计每个作用域有自己的MEMORY.md索引每条记忆一行- 标题 — 钩子每条记忆是一个主题文件frontmatter 含name/description/updated_at而不是按任务或日期散落的碎片绝不会被保存的内容凭证、任务进度、未经确认的猜测以及代码和 Git 历史本身就说明了的事实。什么会真正进入模型只有索引为了控制 token 开销每次会话注入上下文的是MEMORY.md索引经系统提示词的{{MEMORY}}占位符展开而不是全部正文。注入上限为每作用域 200 行、合计 25,000 字符超出时模型会被提示自行打开完整的MEMORY.md。正文则按需读取——读取、写入和去重都由 Agent 用普通文件工具自己完成。在 Web App 中管理记忆查看、编辑、导入导出打开某个 Agent 的设置页在记忆Memory标签页可以集中管理全部记忆按作用域分组展示用户记忆在前之后每个 Workspace 一组每条记忆一行支持查看侧边面板显示标题、日期、描述与完整正文编辑打开新对话由 Agent 更新记忆文件与索引记忆内容刻意不开放就地编辑保证索引与正文一致删除确认后删除文件并机械地移除MEMORY.md中对应行添加 / 导入 / 导出粘贴文本、文件路径或 URL 交给 Agent 整理成记忆分组可整组导出为 JSON再按需导入含保留现有 / 改用文件版本 / 整组替换三种冲突策略。顶部的启用记忆开关切换后立即生效关闭只是让记忆不再进入上下文不会删除任何文件。相关操作说明见 Agent 设置文档。Vault 密钥管理模型只看得见变量名看不见值 Agent 干活经常需要 API Key。把密钥贴在对话里或写进提示词等于发给模型供应商并永久留在 Trace 里。PenguinHarness 的答案是密钥保险柜Vault变量按 Agent 保存在agent_state/.vault.toml0600 权限的隐藏文件值只注入 Agent 命令的子进程环境变量从不进入模型上下文——模型只能看到变量名{{VAULT_KEYS}}列出的名单永远看不到值子 Agent 使用各自的 Vault不继承父 Agent 的变量修改从下一个 Task 生效正在运行的 Task 不受影响权限上只有 Project owner 能修改 Vault成员看到的值全部是掩码。两种添加变量的方式手动添加推荐在密钥保险柜标签页选手动创建输入键名如OPENAI_API_KEY和值即可。用 AI 创建描述需要的变量例如盘点这个智能体需要的 keyProject 的默认 Agent 会用penguin config vault set写入。也可以直接用 CLI 管理penguin config vault set --key GITHUB_TOKEN --value ghp_xxx penguin config vault list penguin config vault remove --key GITHUB_TOKEN⚠️ 安全提示在 AI 对话框里直接输入的密钥值会发送给模型供应商并记录进 Trace。更安全的做法是让 AI 只创建变量名、说明用途然后自己在保险柜标签页填入值。CLI 用法详见 CLI 文档。数据落在哪里全部是可编辑的本地文件PenguinHarness 是本地优先的——Agent 的全部行为都是可编辑的文件记忆与密钥也不例外内容存放位置说明记忆agent_state/memory/按作用域分目录各带MEMORY.md索引密钥保险柜agent_state/.vault.toml0600 权限值只进子进程环境记忆/保险柜提示词agent_state/system_config.yamlmemory.prompt、vault.prompt均可在对应标签页编辑记忆随 Agent State 一起迁移导出、导入和快照都会带上但快照刻意排除 Vault密钥永远不会随快照流走。完整的存储分层见 架构文档 与 配置参考。常见问题记忆会泄露给其他 Agent 吗不会。每个 Agent 的记忆只属于它自己即使多个 Agent 在同一个 Workspace 工作也互不可见。关闭记忆开关会删数据吗不会。关闭只是阻止记忆进入上下文、不再为新会话准备目录文件原样保留。移动项目目录后记忆还在吗旧记忆仍以旧键留在磁盘上Workspace 键基于真实路径哈希新路径被视为新 Workspace。小结PenguinHarness 给 Agent 装上长期记忆的思路很克制记忆 Markdown 文件两个作用域、一份索引、按需读取透明可编辑密钥 Vault 环境变量值只进命令子进程模型只见名不见值一切本地优先数据都在agent_state/下可导出、可迁移、可随时关掉。想动手试试的话从 Agent 设置文档 的记忆标签页和密钥保险柜标签页两节开始十分钟就能跑起来。【免费下载链接】penguin-harness Unified and Stable RSI Platform项目地址: https://gitcode.com/gh_mirrors/pe/penguin-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

系统架构设计师综合知识真题解析:高频考点与复习主线

系统架构设计师综合知识真题解析:高频考点与复习主线

我花了两个周末,把近四次系统架构设计师(也就是大家常说的"系分架构"方向)综合知识科目的真题逐一过了一遍,每道题都做了考点标注和错误选项分析。做完之后最直观的感受是:这门科目绝对不只是"背多分&q…

2026/10/4 2:41:09 阅读更多 →
采样也要精确:MTPLX 拒绝采样与残差校正的数学原理全解析

采样也要精确:MTPLX 拒绝采样与残差校正的数学原理全解析

采样也要精确:MTPLX 拒绝采样与残差校正的数学原理全解析 【免费下载链接】MTPLX The fastest way to run Qwen 3.8 Flash Next, Qwen 3.8 27B and Ternary Bonsai 2 27B on a Mac: 125 tok/s in OpenCode on an M5 Max, and a 27B model on 16 GB Macs. Native MTP…

2026/10/4 2:41:09 阅读更多 →
PX4 安全失效保护(Failsafe)配置完全指南:QGC 安全设置、失效动作与参数详解

PX4 安全失效保护(Failsafe)配置完全指南:QGC 安全设置、失效动作与参数详解

嵌入式物联网机器人自动驾驶智能硬件 【免费下载链接】PX4-Autopilot PX4 Autopilot Software 项目地址: https://gitcode.com/gh_mirrors/px/PX4-Autopilot 点击查看 免费下载 PX4 固件内置了一套完整的飞行安全体系,涵盖电池、遥控链路、数据链路、地…

2026/10/4 2:41:09 阅读更多 →

最新新闻

锐捷RGNOS接口配置实战:从物理口到VLAN与排障全指南

锐捷RGNOS接口配置实战:从物理口到VLAN与排障全指南

简介:面向网络工程师、系统集成商及锐捷设备运维人员的接口配置实战指南,系统讲解RGNOS™系统中接口从基础概念到监控维护的完整知识体系;内容涵盖物理接口、逻辑接口、虚拟接口等类型差异,并重点介绍IP地址、接口描述、MTU、Band…

2026/10/4 3:18:30 阅读更多 →
VSCode配置C++编译环境:从MinGW安装到tasks.json与launch.json调试全解析

VSCode配置C++编译环境:从MinGW安装到tasks.json与launch.json调试全解析

配过VSCode写C的老手都知道,这事儿看着简单,真正跑通一次全流程——从新建文件到终端蹦出"Hello World"——中间隔着编译器路径、环境变量、任务配置三道坎。很多入门的朋友在B站跟着视频敲了半天,最后卡在"g不是内部或外部命…

2026/10/4 3:18:30 阅读更多 →
MySQL my.ini配置全攻略:从定位文件到参数调优与排坑

MySQL my.ini配置全攻略:从定位文件到参数调优与排坑

很多人在Windows上装MySQL,输完mysql -uroot -p能进命令行,就以为大功告成。直到有一天产品说“把端口从3306改成3307”,或者DBA说“把慢查询日志打开”,又或者C盘快满了要把数据目录搬到D盘,这时候你才发现自己连my.i…

2026/10/4 3:18:30 阅读更多 →
TextForever:TXT文件合并、乱码修复与段落清洗全攻略

TextForever:TXT文件合并、乱码修复与段落清洗全攻略

简介:这是一款面向电子书阅读与文本编辑场景的轻量级工具,主要解决TXT文件合并、段落合并、分行等日常整理需求。内置HTML转TXT、编码转换(GB/GBK/Big5/Shift-JIS/Unicode)、文本替换、正则表达式、文件切分与文本提取等功能&…

2026/10/4 3:18:30 阅读更多 →
HTML Standard 常见问题全解析:Living Standard 设计理念、语法规范与 WHATWG 协作机制

HTML Standard 常见问题全解析:Living Standard 设计理念、语法规范与 WHATWG 协作机制

文档 【免费下载链接】html HTML Standard 项目地址: https://gitcode.com/gh_mirrors/ht/html 点击查看 免费下载 本文以 WHATWG HTML Standard 官方仓库(gh_mirrors/ht/html)中的 FAQ.md 为骨架,系统讲解现代 HTML 标准的开发模…

2026/10/4 3:18:30 阅读更多 →
UniMate安装报错怎么办?8个常见问题与解决方案清单

UniMate安装报错怎么办?8个常见问题与解决方案清单

UniMate安装报错怎么办?8个常见问题与解决方案清单 【免费下载链接】UniMate [SIGGRAPH Asia 2026] UniMate: One Unified Model to Animate Diverse Skeletons 项目地址: https://gitcode.com/GitHub_Trending/un/UniMate UniMate 是 SIGGRAPH Asia 2026 入…

2026/10/4 3:17:29 阅读更多 →

日新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/4 1:00:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 10:36:31 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:35 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/3 9:42:36 阅读更多 →