Pensieve
Pensieve 是一款专为 AI 代理设计的“自生长”项目记忆系统,旨在让 Claude 等智能体在长期开发中越用越聪明。它解决了传统静态文档(如 CLAUDE.md)难以维护、信息孤岛严重以及 AI 容易重复犯错或遗忘历史决策的痛点。通过 Pensieve,项目规范、架构决策、事实知识和工作流不再需要人工反复更新,而是能在日常编码、代码审查和复盘过程中自动积累与对齐。
这款工具特别适合软件开发者、技术团队负责人及重度使用 AI 编程助手的工程师。其核心亮点在于独特的四层知识模型:从跨项目的绝对准则(MUST),到具体项目的权衡决策(WANT),再到执行流程(HOW)和实时事实(IS)。这些内容通过语义链接构成动态知识图谱,而非简单的文本堆砌。当 AI 制定计划或查找模块时,Pensieve 能按需调用相关记忆,自动拦截违反架构规范的方案,或直接复用过往的探索成果,从而大幅减少 Token 消耗并提升决策准确性。你只需专注于引导方向,Pensieve 会帮你守住底线,确保持续交付高质量代码。
使用场景
某电商后端团队在重构支付模块时,需要确保新代码严格遵循既有的架构规范并避免重犯历史错误。
没有 Pensieve 时
- 每次开启新任务,开发者都要向 AI 重新粘贴一遍项目规范和目录结构,消耗大量上下文窗口。
- 代码审查标准依赖人工口述,AI 生成的代码常因风格不统一或违反隐式规则而被驳回。
- 三个月前因并发处理不当导致的故障教训未被记录,AI 在类似场景下可能再次给出错误的实现方案。
- 面对“为什么当初选这个数据库分片策略”的疑问,团队成员需翻阅大量旧文档或聊天记录才能找到决策背景。
- 修改核心逻辑时,难以快速评估对上下游工作流的具体影响,往往靠经验盲目猜测。
使用 Pensieve 后
- 项目规范已固化为“必须遵守(MUST)”层准则,Pensieve 自动加载相关约束,无需重复输入即可生成合规代码。
- 历史代码审查中的典型错误被转化为可执行的检查管道,AI 在输出前自动拦截不符合规范的逻辑。
- 过往的故障复盘自动沉淀为“决策(WANT)”层知识,当涉及并发场景时,Pensieve 会主动提示替代方案以规避风险。
- 架构决策的背景、备选方案及取舍原因被完整记录,随时可追溯“为什么这么设计”,消除信息断层。
- 基于语义链接构建的知识图谱能自动分析改动影响范围,精准指出本次重构会波及哪些具体工作流和模块。
Pensieve 将分散的开发经验转化为自生长的项目记忆,让 AI 从“被动执行者”进化为懂规范、知历史的“资深合伙人”。
运行环境要求
- Linux
- macOS
- Windows
未说明
未说明

快速开始
一句话概括:Pensieve 是一个自我生长的 CLAUDE.md,以技能形式运行——占用极少上下文,兼容所有支持技能的 AI 工具。
| CLAUDE.md / agents.md | Pensieve | |
|---|---|---|
| 形式 | 单一静态文件 | 四层结构化知识 |
| 维护 | 手动编写、手动更新 | 自动积累、自动对齐 |
| 范围 | 项目规范 | 规范 + 决策 + 事实 + 流程 |
| 链接 | 平铺式 | 语义链接形成知识图谱 |
| 上下文使用 | 全文注入 | 基于技能的按需路由,用量极小 |
为什么使用 Pensieve
| 不使用 | 使用 |
|---|---|
| 每次都要重新解释项目规范 | 规范以准则形式存储,自动加载 |
| 代码评审标准取决于心情 | 评审标准固化为可执行的流水线 |
| 本周又犯了上周的错误 | 经验自动积累,下次直接跳过 |
| 三个月后忘了当初为何这样设计 | 决策记录了背景和备选方案 |
| 每次查找模块边界都要重新翻阅文档 | 知识缓存了探索结果,直接复用 |
自我强化循环
Pensieve 不只是存储文档——它还能让每一次代理对话都更加精准:
- 验证 AI 生成的计划 ——
"使用 pensieve 检查这个计划是否准确"-> 自动交叉引用准则和决策;违反架构规范的计划会在执行前被拦截 - 缩小探索范围 ——
"使用 pensieve 查找支付模块的入口"-> 知识中包含之前的探索结果,无需全局搜索即可直接复用,节省 token 和时间 - 建立隐性联系 ——
"使用 pensieve 分析这次重构会影响哪些流程"-> 四层知识通过语义链接形成图谱,沿着关联链发现设计意图和依赖关系 - 减少重复确认 ——
"使用 pensieve 规范提交代码"-> 规范和决策已经积累,不再需要问“什么风格?”或“边界在哪里?”
您无需手动维护知识库——日常开发会自动为其提供养分:
开发 --> 提交 --> 审查(流水线)
^ |
| <-- 自动积累经验 <-- |
| v
+-- 准则 / 决策 / 知识 / 流水线
- 编辑时:完成编写/修改后,知识图谱会自动同步(Claude Code 通过钩子触发;其他客户端可手动运行
self-improve) - 审查时:按照项目流水线执行,结论会回流为知识
- 回顾时:
"使用 pensieve 积累这次经验"-> 洞察会被写入相应层级
您只需把握方向,Pensieve 就能帮您避开陷阱。
四层知识模型
| 层级 | 类型 | 回答的问题 | 跨项目适用吗? |
|---|---|---|---|
| MUST | 准则 | 什么绝对不能违背? | 是——适用于不同项目和语言 |
| WANT | 决策 | 为什么选择这种方式? | 否——针对当前项目的主动权衡 |
| HOW | 流水线 | 这个工作流程应该如何运行? | 取决于具体情况 |
| IS | 知识 | 当前的事实是什么? | 否——可验证的系统事实 |
各层级通过三种语义链接相连:基于 / 导致 / 相关。随着使用不断积累,Pensieve 会自动构建起项目知识的有向图:
详细规范请参见 .src/references/:maxims.md、decisions.md、knowledge.md、pipelines.md。
五种工具
| 工具 | 功能 | 触发示例 |
|---|---|---|
init |
创建数据目录,填充默认内容 | “帮我初始化 pensieve” |
upgrade |
更新技能源代码 | “升级 pensieve” |
migrate |
迁移旧版数据,对齐种子文件 | “迁移到 v2” |
doctor |
只读扫描,检查结构与格式 | “检查数据有没有问题” |
self-improve |
从对话和差异中提取洞察,写入四层知识 | “积累这次经验” |
工具边界及重定向规则:tool-boundaries.md。
寻找林纳斯提示词?
Pensieve 最初因一段类似林纳斯·托瓦兹风格的引导提示而闻名——通过“良好的品味”、“不要破坏用户空间”和“对简洁保持警惕”来约束代理行为。
这种工程哲学至今仍是 Pensieve 的核心,但它已不再是孤立的提示词。如今,它被内嵌为可执行的原则,使代理从一开始就具备“良好品味”:
| 类型 | 内置内容 | 效果 |
|---|---|---|
| 准则 | 4 条林纳斯风格的工程原则 | 代理不会写出补丁式的代码;先简化再扩展;不破坏现有行为 |
| 流水线 | 提交评审 + 代码评审 | 每次提交和评审都会自动对照这些原则;结论会回流为知识 |
| 知识 | 代码质量评审标准 | “什么是好代码”现在有了可执行的定义 |
试试看:“使用 pensieve 评审最近提交的代码质量”或“使用 pensieve 提交本地更改”。
安装
先决条件:git、bash、Python 3.8+。
Claude Code
# 1. 全局安装(仅需一次)
git clone -b main https://github.com/kingkongshot/Pensieve.git ~/.claude/skills/pensieve
# 2. 安装钩子(推荐;编辑后自动同步知识图谱,在会话开始时自动检查状态)
bash ~/.claude/skills/pensieve/.src/scripts/install-hooks.sh
# 3. 在您的项目中初始化
cd <your-project>
bash ~/.claude/skills/pensieve/.src/scripts/init-project-data.sh
其他客户端(Cursor / 通用代理等)
将 <skill-path> 替换为您客户端的技能目录(例如 ~/.cursor/skills/pensieve)。
# 1. 全局安装(仅需一次)
git clone -b main https://github.com/kingkongshot/Pensieve.git <skill-path>
# 2. 在您的项目中初始化
cd <your-project>
bash <skill-path>/.src/scripts/init-project-data.sh
系统代码只需全局安装一次;用户数据则按项目存储在 <project>/.pensieve/ 中。多个项目可以共享同一套系统代码,同时各自维护独立的项目知识。
AI 代理自动安装参考
当用户请求 AI 代理安装 Pensieve 时,代理应遵循以下决策流程。其中,SKILL_PATH 指的是客户端特定的安装路径(例如 ~/.claude/skills/pensieve)。
步骤 1:检查全局安装状态
SKILL_PATH="$HOME/.claude/skills/pensieve" # 根据客户端调整
if [[ -d "$SKILL_PATH/.src" ]]; then
echo "Pensieve 已经全局安装,跳过克隆"
else
SKILL_PARENT="$(dirname "$SKILL_PATH")"
# 检查父目录是否为 Git 仓库(有些用户会用 Git 同步配置)
if git -C "$SKILL_PARENT/.." rev-parse --is-inside-work-tree >/dev/null 2>&1; then
git -C "$SKILL_PARENT/.." submodule add -b main https://github.com/kingkongshot/Pensieve.git "skills/pensieve"
else
git clone -b main https://github.com/kingkongshot/Pensieve.git "$SKILL_PATH"
fi
# 钩子是 Claude Code 特有的功能;其他客户端可跳过此步骤
# bash "$SKILL_PATH/.src/scripts/install-hooks.sh"
fi
步骤 2:判断是否需要运行项目初始化
# 如果当前目录是技能的父级配置目录,则不自动初始化项目数据
CURRENT_DIR="$(pwd)"
CONFIG_DIR="$(cd "$(dirname "$SKILL_PATH")/.." 2>/dev/null && pwd)"
if [[ "$CURRENT_DIR" == "$CONFIG_DIR" ]]; then
echo "当前目录是配置目录,跳过项目初始化。如果您需要在此处使用 Pensieve,请明确指定。"
exit 0
fi
步骤 3:检查旧版数据并进行初始化
HAS_LEGACY=0
for legacy_dir in .claude/skills/pensieve .agents/skills/pensieve skills/pensieve .claude/pensieve; do
if [[ -d "$legacy_dir" ]] && [[ -d "$legacy_dir/maxims" || -d "$legacy_dir/decisions" || -d "$legacy_dir/knowledge" || -d "$legacy_dir/pipelines" ]]; then
HAS_LEGACY=1
break
fi
done
if [[ "$HAS_LEGACY" -eq 1 ]]; then
echo "检测到旧版 Pensieve 用户数据。是否迁移到 v2?"
bash "$SKILL_PATH/.src/scripts/init-project-data.sh"
bash "$SKILL_PATH/.src/scripts/run-migrate.sh"
bash "$SKILL_PATH/.src/scripts/run-doctor.sh" --strict
elif [[ -d .pensieve ]]; then
echo "当前项目已初始化 Pensieve"
else
bash "$SKILL_PATH/.src/scripts/init-project-data.sh"
fi
关键要点:先检查全局安装情况 -> 判断父目录是否为 Git 仓库以决定是克隆还是添加子模块 -> 对于配置目录跳过项目初始化 -> 检查旧版数据以决定是否初始化或迁移。
更新
# 更新系统代码(一次操作,所有项目同步生效)
cd <skill-path>
git pull --ff-only || { git fetch origin && git reset --hard "origin/$(git rev-parse --abbrev-ref HEAD)"; }
# 在您的项目中进行健康检查(可选但建议)
cd <your-project>
bash <skill-path>/.src/scripts/run-doctor.sh --strict
git pull --ff-only 适用于常规更新。如果远程分支被强制推送(例如在压缩提交后重新发布),ff-only 将失败,此时需执行 fetch + reset 来将本地同步到最新的远程状态。这是安全的操作——技能目录仅包含受版本控制的系统文件;用户数据位于 <project>/.pensieve/,不会被覆盖。
完整的安装、更新、重新安装和卸载说明:skill-lifecycle.md。
从旧版本升级
如果您之前的 Pensieve 是在项目级别安装的(代码位于 <project>/.claude/skills/pensieve/),或者通过 claude plugin install 安装的,您需要迁移到 v2 架构:
# 1. 全局安装系统代码(如果尚未安装)
if [[ ! -d <skill-path> ]]; then
git clone -b main https://github.com/kingkongshot/Pensieve.git <skill-path>
fi
# 2. 安装钩子(仅限 Claude Code;其他客户端可跳过)
# bash <skill-path>/.src/scripts/install-hooks.sh
# 3. 在每个项目中运行迁移
cd <your-project>
bash <skill-path>/.src/scripts/init-project-data.sh
bash <skill-path>/.src/scripts/run-migrate.sh
bash <skill-path>/.src/scripts/run-doctor.sh --strict
# 4. 卸载旧插件(如适用,仅限 Claude Code)
# claude plugin uninstall pensieve 2>/dev/null || true
run-migrate.sh 会自动将用户数据(maxims/、decisions/、knowledge/、pipelines/)从旧路径移动到 <project>/.pensieve/,运行时状态从 <project>/.state/ 移动到 <project>/.pensieve/.state/,清理旧图文件和 README 副本,然后删除旧目录。
架构细节
目录结构
~/.claude/skills/pensieve/ # 用户级别(单次全局安装)
├── SKILL.md # 静态路由文件(受版本控制)
├── .src/ # 系统代码、模板、参考文档、核心引擎
│ ├── core/
│ ├── scripts/
│ ├── templates/
│ ├── references/
│ └── tools/
└── agents/ # 代理配置
<project>/.pensieve/ # 项目级别(每个项目独立,可版本控制)
├── maxims/ # 工程原则
├── decisions/ # 架构决策
├── knowledge/ # 缓存的探索结果
├── pipelines/ # 可重用的工作流
├── state.md # 动态:生命周期状态 + 知识图
└── .state/ # 运行时产物(被 .gitignore 忽略)
.src/manifest.json 是技能根目录的锚点——脚本通过它来定位所有路径。
设计原则
- 系统代码与用户数据物理隔离 —— 系统代码位于
~/.claude/skills/pensieve/,用户数据位于<project>/.pensieve/;通过git pull更新系统代码绝不会触及项目数据。 - 规则的单一可信来源 —— 目录、关键文件和迁移路径均在
.src/core/schema.json中定义。 - 执行前确认 —— 当范围不明确时,先询问再行动;不要自动启动长时间运行的工作流。
- 读取规范再写入数据 —— 在创建任何用户数据之前,务必阅读
.src/references/中的格式规范。
社区
许可证
MIT
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。