Claude Subconscious 安全配置指南:LETTA_API_KEY 保护与最小权限工具模式完整教程
【免费下载链接】claude-subconsciousGive Claude Code a subconscious项目地址: https://gitcode.com/GitHub_Trending/cl/claude-subconscious
Claude Subconscious是一个为 Claude Code 提供"潜意识"记忆的背景代理插件:它在后台默默观察你的每一次会话、阅读代码、积累记忆,并在你下一次提问前悄悄注入指导建议。因为插件需要把完整会话记录发送到 Letta 云端 Agent,安全配置至关重要——本指南带你完成LETTA_API_KEY的妥善保护与最小权限工具模式的设置,让后台 Agent 只读不写、安心运行。
一、了解 Claude Subconscious 的工作原理
在配置安全选项之前,先理解它"看了什么、能做什么":
- 观察:每个 Claude Code 会话结束后,完整 transcript(用户消息、助手回复、思考块、工具调用)会异步发送给 Letta Agent;
- 记忆:Agent 维护 8 个记忆块(用户偏好、项目上下文、待办事项等),跨会话持久化;
- 回传:在每次你提交提示词前,Agent 通过 stdout 注入指导建议,从不写入 CLAUDE.md。
⚠️ 项目声明:Claude Subconscious 是基于 Letta Code SDK 构建的演示应用,不建议直接用于生产环境。
核心安全边界在于两点:LETTA_API_KEY是唯一的认证凭证,LETTA_SDK_TOOLS决定了后台 Agent 能碰多少东西。下面逐项讲解。
二、LETTA_API_KEY 保护:唯一必填项的正确姿势
1. 在哪里设置
在 shell 配置(~/.bashrc或~/.zshrc)中导出:
export LETTA_API_KEY="your-api-key"密钥从 Letta 平台(app.letta.com)获取。这是唯一必填的变量——设置好后,插件会自动完成 Agent 的导入与模型选择,实现零配置启动。
2. 为什么必须保护它
- 四个 Hook 脚本(会话启动、记忆同步、工具前置同步、会话结束发送)在执行前都会校验该变量,缺失即报错退出;
- 该 Key 可访问你的 Letta 云端 Agent 及其全部会话记忆——等于你项目上下文、编码偏好的"大脑",泄露风险等同泄露业务数据;
- 插件日志只记录 Key 的前 10 个字符用于排障(见 send_messages_to_letta.ts),但请仍避免在公开环境打印完整变量。
3. 三个安全习惯
| 习惯 | 做法 |
|---|---|
| 不入库 | 项目.gitignore已忽略.env及.letta/状态文件(见 .gitignore),不要手动提交任何含 Key 的文件 |
| 不共享 | 每人使用自己的 Key 与 Agent ID,避免多人共用一个"大脑" |
| 可轮换 | 怀疑泄露时立即在 Letta 平台吊销并更换 Key |
三、最小权限工具模式:LETTA_SDK_TOOLS 三档详解
后台 Sub Agent 拥有客户端工具权限。通过LETTA_SDK_TOOLS环境变量可将其收敛到最小范围,逻辑实现在 conversation_utils.ts 与 send_worker_sdk.ts:
| 模式 | 可用工具 | 适用场景 |
|---|---|---|
read-only(默认) | Read、Grep、Glob、web_search、fetch_webpage | 安全:只读代码 + 联网检索 |
full | 全部工具(Bash、Edit、Write、Task 等) | 完全自主:Agent 可改代码、派生子代理 |
off | 无(仅记忆操作) | 只监听:处理 transcript 但不碰任何工具 |
1. 默认即安全:read-only
export LETTA_SDK_TOOLS="read-only"白名单机制意味着Bash、Edit、Write、Task 全部不可用——即使 Agent 产生"幻觉指令",也无法执行写操作。这是普通用户的推荐设置。
2. 最保守:off 模式
如果只想获得跨会话记忆、完全不想让后台 Agent 读本地文件:
export LETTA_SDK_TOOLS="off"此时 send_worker_sdk.ts 会把所有客户端工具加入禁用列表,Agent 仅做记忆运算。
3. 始终被禁用的工具
无论哪种模式,AskUserQuestion、EnterPlanMode、ExitPlanMode被永久屏蔽——后台会话永远无法弹出交互式提问卡住你的工作流。
🔒最小权限原则:先从
read-only起步,确认价值后再逐步放宽,切勿一上来就开full。
四、其他安全相关配置速查
export LETTA_MODE="whisper" # 默认。full=注入记忆块+消息,off=彻底关闭 export LETTA_HOME="$HOME" # 状态统一收纳到 ~/.letta/,不散落各目录 export LETTA_BASE_URL="http://localhost:8283" # 自建 Letta 服务器,数据不出内网LETTA_MODE="off":临时停用钩子最干净的方式,无需取消导出 Key;LETTA_HOME:会话映射与状态文件默认写在项目目录下(.letta/claude/),设到$HOME可集中管理;LETTA_BASE_URL:对接自建 Letta 服务,敏感代码会话可完全走内网,是数据隐私要求高的团队的首选方案。
所有钩子的注册与超时配置见 hooks.json,其中 Stop 钩子以async异步运行(120 秒超时),保证后台同步永不阻塞你的主会话。
五、安全配置清单(照做即可)
- ✅
LETTA_API_KEY写入 shell 配置,不提交到仓库、不共享; - ✅
LETTA_SDK_TOOLS保持默认read-only,确认后再放宽; - ✅ 隐私敏感项目用
LETTA_BASE_URL指向自建 Letta 服务; - ✅ 临时停用用
LETTA_MODE="off"; - ✅ 定期查看日志目录
$TMPDIR/letta-claude-sync-$(id -u)/下的send_worker_sdk.log确认工具权限符合预期。
六、结语
Claude Subconscious 用"观察—记忆—低语"的后台 Agent 模式解决 Claude Code 跨会话失忆问题。只要守住LETTA_API_KEY这道门、把LETTA_SDK_TOOLS锁在最小权限档,你就能放心享受一个越用越懂你、且绝不越权的后台潜意识。更多变量细节请查阅 README.md 中的 Configuration 章节,Agent 定义文件见 Subconscious.af。
【免费下载链接】claude-subconsciousGive Claude Code a subconscious项目地址: https://gitcode.com/GitHub_Trending/cl/claude-subconscious
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考