OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  penfield:为 OpenClaw 智能体提供的持久化记忆模块

penfield:为 OpenClaw 智能体提供的持久化记忆模块

 
  vulnerability ·  2026-02-26 18:54:22 · 3 次点击  · 0 条评论  

名称: penfield
描述: 为 OpenClaw 智能体提供持久化记忆。存储决策、偏好和上下文,使其在不同会话间持续存在。构建随时间增长的知识图谱。混合搜索(BM25 + 向量 + 图谱)能在需要时准确召回重要信息。
元数据: {"openclaw":{"emoji":"🧠","install":[{"id":"npm","kind":"node","package":"openclaw-penfield","global":true,"label":"安装 Penfield 插件"}],"requires":{"config":["plugins.entries.openclaw-penfield.enabled"]}}}


Penfield 记忆系统

持久化、可积累的记忆。您的智能体能够记住对话、学习偏好、关联想法,并在会话、日期和渠道之间实现无缝衔接,随时从上次中断的地方继续。

工具集

记忆

工具 用途 使用场景
penfield_store 保存记忆 用户分享偏好、您有新发现、做出决策、学到值得保留的内容时
penfield_recall 混合搜索 (BM25 + 向量 + 图谱) 回复前需要上下文、恢复某个话题、查找先前决策时
penfield_search 语义搜索 (向量权重更高) 没有确切术语时进行模糊概念搜索
penfield_fetch 根据 ID 获取记忆 跟进从召回结果中找到的特定记忆
penfield_update_memory 编辑现有记忆 修正、补充细节、更改重要性或标签

知识图谱

工具 用途 使用场景
penfield_connect 连接两个记忆 新信息与现有知识相关,随时间构建理解时
penfield_explore 从某个记忆开始遍历图谱 理解想法间的关联,寻找相关上下文时

上下文与分析

工具 用途 使用场景
penfield_save_context 保存会话检查点 结束实质性工作、准备将任务移交给其他智能体时
penfield_restore_context 从检查点恢复 从您或其他智能体中断的地方继续
penfield_list_contexts 列出已保存的检查点 查找要恢复的先前会话
penfield_reflect 分析记忆模式 会话开始时的方向定位、寻找主题、发现信息缺口时

工件

工具 用途 使用场景
penfield_save_artifact 存储文件 保存图表、笔记、代码、参考文档时
penfield_retrieve_artifact 获取文件 加载先前保存的工作成果时
penfield_list_artifacts 列出存储的文件 浏览已保存的工件时
penfield_delete_artifact 删除文件 清理过时的工件时

如何撰写真正有效的记忆

记忆内容的质量决定了 Penfield 是有用还是无用。关键在于具体性上下文

反面示例 — 模糊、无上下文、日后难以查找:

"用户喜欢 Python"

正面示例 — 具体、有上下文、易于查找:

"[偏好] 对于后端工作,用户更喜欢 Python 而非 JavaScript。
原因:对 JS 的回调模式和缺乏类型安全感到沮丧。
重视类型提示和明确的错误处理。使用 FastAPI 构建 API。"

让记忆易于查找的要素:

  1. 方括号内的上下文前缀[偏好][项目: API 重构][调查: 支付故障][决策]
  2. “是什么”背后的“为什么” — 理由比事实本身更重要
  3. 具体细节 — 名称、数字、日期、版本,而非模糊的总结
  4. 引用相关记忆 — “这建立在[关于 X 的早期发现]之上”或“与先前认为 Y 的假设相矛盾”

记忆类型

使用正确的类型。系统会利用这些类型进行过滤和分析。

类型 用于 示例
fact 已验证、持久的信息 “用户公司使用 AWS EKS 运行 Kubernetes”
insight 模式或认知 “部署失败与周五发布相关”
correction 修正先前的理解 “更正:超时问题并非 Redis 导致,而是硬编码的批处理限制”
conversation 会话摘要、重要交流 “讨论了迁移策略。用户倾向于渐进式方法”
reference 源材料、引用 “RFC 8628 为输入受限设备定义了 OAuth 设备代码流”
task 工作项、待办事项 “待办:索引重建后测试召回延迟”
strategy 方法、计划 “对于用户的代码库:始终先检查 types.ts 文件,它是事实来源”
checkpoint 里程碑状态 “项目进度 80% — 认证完成,UI 待完成”
identity_core 不可变的身份事实 通过个性配置设置,很少手动存储
personality_trait 行为模式 通过个性配置设置,很少手动存储
relationship 实体连接 “用户与 Chad Schultz 在网络安全内容方面合作”

重要性评分

充分利用评分范围。并非所有事情都是 0.5。

评分 含义 示例
0.9–1.0 关键 — 永不忘记 架构决策、来之不易的修正、核心偏好
0.7–0.8 重要 — 经常参考 项目上下文、关于用户工作的关键事实
0.5–0.6 普通 — 有用的上下文 一般偏好、会话摘要
0.3–0.4 次要 — 背景细节 间接事实、低风险观察
0.1–0.2 琐碎 — 可能无需存储 如果犹豫是否存储,那就别存

连接记忆

连接是 Penfield 强大的关键。孤立的记忆只是一条笔记。连接起来的记忆才是理解。

存储记忆后,始终要问: 这与什么相关?然后连接它。

关系类型 (24 种)

知识演进: supersedes · updates · evolution_of
当理解发生变化时使用。“我们曾认为 X,现在我们知道 Y。”

证据: supports · contradicts · disputes
当新信息验证或挑战现有信念时使用。

层次结构: parent_of · child_of · sibling_of · composed_of · part_of
用于结构关系。包含子主题的主题,包含组件的系统。

因果关系: causes · influenced_by · prerequisite_for
用于因果链和依赖关系。

实现: implements · documents · tests · example_of
当某事物演示、描述或验证另一事物时使用。

对话: responds_to · references · inspired_by
用于归属和对话线程。

序列: follows · precedes
用于流程或时间线中的有序步骤。

依赖: depends_on
当一件事物需要另一件事物时使用。

召回策略

好的查询能找到东西。坏的查询只会返回噪音。

根据查询类型调整搜索权重:

查询类型 bm25_weight vector_weight graph_weight
精确术语查找 (“Twilio 认证令牌”) 0.6 0.3 0.1
概念搜索 (“我们如何处理错误”) 0.2 0.6 0.2
关联知识搜索 (“关于支付的一切”) 0.2 0.3 0.5
默认 (平衡) 0.4 0.4 0.2

积极使用过滤器:
- memory_types: ["correction", "insight"] 以查找发现和更正
- importance_threshold: 0.7 以跳过噪音
- enable_graph_expansion: true 以跟随连接 (默认开启,通常保持)

工作流程示例

用户分享偏好

penfield_store({
  content: "[偏好] 用户希望回复不超过 3 段,除非复杂度要求更多。不喜欢在随意对话中使用项目符号列表。",
  memory_type: "fact",
  importance: 0.8,
  tags: ["preferences", "communication"]
})

调查跟踪

// 开始
penfield_store({
  content: "[调查: 部署失败] 报告称每次周五部署后都会出现 500 错误。正在检查发布流水线、配置漂移和流量模式。",
  memory_type: "task",
  importance: 0.7,
  tags: ["investigation", "deployment"]
})

// 发现 — 连接到调查
discovery = penfield_store({
  content: "[调查: 部署失败] 洞察:周五部署与每周 17:00 UTC 的批处理作业时间重合。两者竞争数据库连接池。这不是部署问题,而是资源争用。",
  memory_type: "insight",
  importance: 0.9,
  tags: ["investigation", "deployment", "root-cause"]
})
penfield_connect({
  from_memory_id: discovery.id,
  to_memory_id: initial_report.id,
  relationship_type: "responds_to"
})

// 更正 — 取代错误的假设
correction = penfield_store({
  content: "[调查: 部署失败] 更正:不是 CI/CD 问题。周五批处理作业 + 部署 = 连接池耗尽。修复:将批处理作业错开到 03:00 UTC。",
  memory_type: "correction",
  importance: 0.9,
  tags: ["investigation", "deployment", "correction"]
})
penfield_connect({
  from_memory_id: correction.id,
  to_memory_id: initial_report.id,
  relationship_type: "supersedes"
})

会话交接

penfield_save_context({
  name: "deployment-investigation-2026-02",
  description: "调查了部署超时问题。记忆 ID: " + discovery.id,
  memory_ids: [discovery.id, correction.id, initial_report.id]
})

下一个会话或不同智能体:

penfield_restore_context({
  name: "deployment-investigation-2026-02"
})

不应存储的内容

  • 逐字对话记录 (过于冗长,信号价值低)
  • 易于搜索到的事实 (使用网络搜索代替)
  • 临时任务状态 (使用工作记忆)
  • 用户未同意存储的关于其自身的任何信息
  • 每一次微小的交流 (要有选择性 — 质量重于数量)

标签

保持简短、一致、小写。每条记忆使用 2–5 个标签。

好例子:preferencesarchitectureinvestigationcorrectionproject-name
坏例子:2026-02-02important-memory-about-deploymentUserPreferencesForCommunicationStyle

也可在 OpenClaw 之外使用

原生 OpenClaw 插件是最快的途径,但 Penfield 可与任何 AI 工具配合使用:

Claude 连接器

**名称:** Penfield
Remote MCP server URL: https://mcp.penfield.app

Claude Code

Claude mcp add --transport http --scope user penfield https://mcp.penfield.app

MCP 服务器 — 适用于 Gemini CLI、Cursor、Windsurf、Intent、Perplexity Desktop 或任何 MCP 兼容工具:

{
  "mcpServers": {
    "penfield": {
      "command": "npx",
      "args": [
        "mcp-remote@latest",
        "https://mcp.penfield.app/"
      ]
    }
  }
}

API — 通过 api.penfield.app 直接进行 HTTP 访问,用于自定义集成。

相同的记忆、相同的知识图谱、相同的账户。插件速度快 4-5 倍 (无 MCP 代理层),但无论您如何连接,所有内容都保持同步。

链接

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor