用途:修改 Letta Code 的确定性运行时行为,主要是权限规则与生命周期钩子,也可处理工具集、模型、上下文窗口、名称、描述、日程等每智能体本地设置。
记忆与框架需分开:若行为由 LLM 自行选择(如“偏好简短回答”“记住 PR 清单”),存入记忆;若需在 LLM 之外强制执行(如“执行 shell 前必须询问”“阻止不安全编辑”),使用本技能。
配置位置:用户级 ~/.letta/settings.json,项目级 ./.letta/settings.json,项目本地 ./.letta/settings.local.json;优先级为 local > project > user,列表类条目(权限、钩子)合并,钩子按 local、project、user 顺序运行。
权限:设置 allow/deny/ask/alwaysAsk 规则,语法如 Bash(npm install:)、Read(src/)、Edit(/.ts)。alwaysAsk 可在无限制/yolo 模式下仍要求人工批准;设置中的 ask 规则不覆盖 yolo 模式。可用脚本添加:python3 <skill-dir>/scripts/add_permission.py --rule "Bash(curl:*)" --type allow --scope user。
钩子:在事件(如 PreToolUse、PostToolUse、Stop)上运行 shell 命令或 LLM 提示检查,用于审计、注入上下文、强制策略、编辑后自动格式化、完成后通知或阻止不安全操作。先查看现有配置:python3 <skill-dir>/scripts/show_config.py。添加命令钩子:python3 <skill-dir>/scripts/add_hook.py --event PreToolUse --matcher Bash --type command --command 'python3 ~/.letta/hooks/log-bash.py' --scope user;提示钩子用 --type prompt。
智能体配置:服务端字段名称、描述、模型、上下文窗口通过 PATCH /v1/agents/{agent_id} 修改,需 LETTA_API_KEY 与 LETTA_AGENT_ID。示例:curl -X PATCH "https://api.letta.com/v1/agents/$LETTA_AGENT_ID" -H "Authorization: Bearer $LETTA_API_KEY" -H "Content-Type: application/json" -d '{"name": "new-name"}'。不要直接 patch 已弃用的 llm_config,改用 model 与 context_window_limit,改后读回验证 llm_config.context_window。本地每智能体设置在 ~/.letta/settings.json 的 agents[] 中,字段含 agentId、baseUrl、pinned、toolset。
生效说明:权限文件变更有签名校验且通常热重载,未生效则开新会话;钩子外部文件编辑可能需新会话,应用内钩子管理即时更新内存设置;API 更改服务端即时生效但当前会话可能需重启才完全体现;模型变更后建议开启新对话。
限制:资料未提供收费、价格、平台支持范围等信息。