用途:配置 Letta Code 的确定性运行时行为,核心是权限与生命周期钩子,也支持每个智能体的本地设置(工具集、模型、上下文窗口、名称、描述)。
关键区分:若行为由 LLM 自行选择(如偏好简洁回答、记住 PR 清单),应写入 memory;若需在 LLM 之外强制生效(如始终询问 shell 命令、阻止不安全编辑、更换工具集),才用此技能配置 harness。
配置位置:~/.letta/settings.json(用户/全局)、./.letta/settings.json(项目级,随仓库提交)、./.letta/settings.local.json(本地覆盖,gitignored)。优先级 local > project > user,但权限与钩子等列表项会合并;钩子执行顺序为 project-local、project、user。仅在当前工作目录确为项目根时使用项目/本地作用域。
权限:规则如 Bash(npm install:)、Bash(git:)、Read(src/)、Edit(/.ts),宽泛规则(、Bash)慎用。可用 scripts/add_permission.py --rule "Bash(curl:*)" --type allow --scope user 添加,或直接编辑 permissions 的 allow/deny/ask 数组。
钩子:在事件(如 PreToolUse、PostToolUse、Stop)上运行 shell 命令或 LLM 提示检查,用于审计、注入上下文、强制策略、编辑后格式化、完成通知或拦截危险操作。添加前先运行 scripts/show_config.py 查看现有配置。示例:add_hook.py --event PreToolUse --matcher Bash --type command --command '...' --scope user;提示钩子用 --type prompt。
智能体配置:服务端字段(name、description、model、context_window)通过 PATCH /v1/agents/$LETTA_AGENT_ID 修改,需 export LETTA_API_KEY 与 LETTA_AGENT_ID;本地 per-agent 设置编辑 ~/.letta/settings.json 的 agents[](agentId、baseUrl、pinned、toolset)。
生效与限制:权限文件签名校验后通常热重载,不生效则新开会话;外部修改钩子可能需新会话,应用内钩子管理即时生效;API 改动服务端立即生效但当前会话可能需重启才完全反映;改模型后应开启新对话。脚本均支持 --scope user|project|local。
资料未提供安装步骤、定价、平台兼容性等信息。