mimo code 通过角色标签绑定、toolgate 中间层拦截、traceid 链路审计、subprocess 内存隔离及显式授权流,实现终端原生多 agent 协作的权限控制与安全审计。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

处理 MiMo Code 多 Agent 环境下的协作权限安全与审计,核心在于把“谁调用谁”“能访问什么数据”“做了什么操作”三件事在终端原生、命令行驱动的架构中落地,而不是照搬 Web 服务那一套 RBAC 或 OAuth 流程。
权限控制必须嵌入 Agent 生命周期与工具链
MiMo Code 的多 Agent 协作(如 Recon、Plan、Edit、Test 子智能体)发生在本地终端,不经过中心化网关,传统基于 HTTP Header 或 JWT 的鉴权无法直接复用。实际做法是:
- 每个子 Agent 启动时绑定明确的角色标签(如 recon:read-only、edit:git-write),该标签写入其运行上下文并参与工具调用前的策略检查;
- 所有对 Git、FS、Lint、测试命令等敏感工具的调用,都经由统一的 ToolGate 中间层拦截——它读取当前 Agent 的角色标签 + 当前工作目录的项目策略文件(
.mimo-policy.yaml),动态判断是否允许执行; - 当 Agent 尝试跨目录访问或写入非本任务沙箱路径时,ToolGate 直接拒绝并记录为「越权尝试」,不抛出底层系统错误,避免信息泄露。
审计不是事后查日志,而是链路级事件快照
MiMo Code 的审计难点在于:操作分散在终端进程、Git 提交、SQLite 记忆库、临时文件等多个载体,且无统一请求 ID。它的解决方案是构建轻量但完整的事件锚点:
- 每次用户发起
mimo plan或mimo run,系统自动生成一个 UUID 作为本次任务的 TraceID,并注入所有子 Agent 进程环境变量; - 每个 Agent 在执行关键动作(如读取
src/、调用git add、写入.mimo-checkpoint)时,向本地 SQLite 审计表插入一条带 TraceID、时间戳、操作类型、作用路径、调用者 Agent 名称的记录; - 审计输出支持按 TraceID 导出为结构化 JSON,也可通过
mimo audit --trace <id></id>命令还原完整操作链,包括哪一步触发了哪条 Lint 规则、哪个子 Agent 修改了哪行代码、是否绕过某次人工确认。
信任边界靠内存隔离 + 显式授权流来维持
不同于云端多 Agent 系统依赖 TLS 和服务网格,MiMo Code 的信任模型更贴近操作系统级约束:
- 各子 Agent 运行在独立的 Python subprocess 中,共享内存仅限显式传递的 checkpoint 数据块,且该数据块在传入前经 SHA256 校验签名,防止中间篡改;
- 敏感操作(如
git push、curl -X POST)默认禁用,必须由用户在交互式确认环节输入yes --force-auth才解锁,且该授权只对当前 TraceID 有效; - 项目根目录下的
.mimo-trust文件定义白名单(如只允许test-agent调用pytest),任何未列明的 Agent-工具组合都会被 ToolGate 拦截并告警。
这套机制不依赖外部认证服务,也不增加网络调用开销,完全适配终端场景的离线性、低延迟和开发者可控性要求。安全不是加锁,而是让每一次协作意图可声明、每一次数据流动可追溯、每一次越界行为可拦截。











