mirror of
https://github.com/langbot-app/LangBot.git
synced 2026-06-02 12:05:54 +00:00
4.0 KiB
4.0 KiB
Agent Runner Security Hardening
本文档记录 agent-runner 插件化进入生产发布前需要补齐的安全与稳定加固项。
状态
当前结论:暂不塞进本阶段 agent-runner plugin 协议闭环。
本阶段目标是验证 LangBot 可以通过统一的 run(event, binding) 协议接入 local-agent 与外部 harness runner(如 Claude Code runner),并能传递事件、上下文、资源句柄、状态和结果流。
安全发布级 hardening 是后续 release gate,不应阻塞当前协议闭环,但必须作为进入生产默认启用前的验收条件。
责任边界
LangBot Host 负责
- 资源授权:决定某个
run_id/ binding 可以访问哪些模型、RAG、MCP、skill、artifact、history、state。 - 资源投影:只把授权后的资源句柄、配置片段或上下文文件传给 runner。
- 路径策略:限制 workspace / context file / artifact 的允许路径和清理策略。
- Secret 策略:过滤环境变量、配置、日志和 transcript 中的 secret。
- 运行约束:配置超时、轮次、并发、配额、输出大小和取消路径。
- 审计记录:记录事件、绑定、资源授权、runner 调用、外部 harness session id、关键错误和结果摘要。
Runner Plugin 负责
- 遵守 LangBot 下发的 binding config、授权资源和运行约束。
- 将 LangBot 资源投影成目标 runner 可消费的形式,例如 context 文件、MCP 配置、环境变量或 CLI 参数。
- 不把长期状态保存在插件实例内;需要跨轮次保存的外部 session id / working directory 等状态应写入 host-owned state。
- 对外部进程做最小必要封装,包括命令参数构造、超时、取消、输出解析和错误映射。
外部 Harness 负责
Claude Code、Codex、Kimi Code 等外部 harness 可以继续使用自身的权限模型、工具 allow / deny 规则、MCP 加载策略、session/resume 机制和沙箱能力。
但外部 harness 不是 LangBot 的唯一安全边界。LangBot 仍必须在调用前完成资源授权、路径限制、secret 过滤和审计记录。
当前 MVP 可接受边界
当前阶段可以接受以下前提:
- 由可信管理员配置 runner binding。
- 工作目录和 context 输出目录为显式配置或 host 生成路径。
- 外部 runner 默认使用保守权限,例如 plan / no-write 模式或禁用高风险工具。
- 通过 timeout、max turns、输出长度和进程取消降低失控风险。
- 通过 host-owned state 保存
external.session_id、external.working_directory等 resume 所需指针。
这些前提足够做本地 E2E 与协议验收,不等同于生产发布完成。
Release Gate Checklist
进入生产默认启用前,需要补齐:
- Path isolation:workspace allowlist、路径规范化、防止
..逃逸、context / artifact 清理。 - Permission boundary:runner 能力声明、binding 级资源授权、run 级权限校验。
- Secret handling:环境变量白名单、配置脱敏、日志和 transcript redaction。
- MCP policy:MCP server allowlist、scoped token、tool allow / deny、危险工具审计。
- Skill projection policy:skill 来源验证、只读投影、版本和摘要记录。
- Process isolation:进程组管理、取消、超时、CPU / 内存 / 输出配额。
- State lifecycle:session id、workspace、artifact 的过期、清理、迁移和审计。
- Audit first-class:事件、资源授权、外部命令、session id、结果摘要可追踪。
- UI / Admin control:管理员能看到 runner 权限、风险提示、资源绑定和禁用入口。
- Test matrix:路径逃逸、secret 泄漏、权限拒绝、timeout、取消、MCP deny、resume、cleanup、audit 完整性。
非当前范围
以下内容不属于本阶段协议闭环:
- 完整异步队列与 issue-centric 产品模型。
- 复杂 workflow engine。
- Codex / Kimi runner 全量接入。
- EBA 分支完整迁移和联调。
- 发布级安全 hardening 的完整实现。