ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Atlas权限系统如何运作?审批卡片与CLI权限策略全解

Atlas权限系统如何运作?审批卡片与CLI权限策略全解 Atlas权限系统如何运作审批卡片与CLI权限策略全解【免费下载链接】atlasSource control for agents. Use multiple coding agents, track their changes and query them in one place项目地址: https://gitcode.com/GitHub_Trending/atlas115/atlasAtlas 是一款多智能体源码控制中心Source Control for Agents桌面应用让你同时调度 Claude Code、Codex、OpenCode、Cursor 等多个编程智能体并在统一界面里追踪它们的每一次改动。当智能体想执行一个工具跑命令、改文件时Atlas 的权限系统会先拦下来通过审批卡片让你一键放行或拒绝而CLI 权限策略会话模式则决定了智能体到底问多少。本文带你完整看懂这条从协议到像素的审批链路。权限系统的核心一切基于 ACP 协议Atlas 与所有智能体之间走的是 ACPAgent Client Protocol。当智能体发起一次需要授权的工具调用时会向客户端发出一条RequestPermissionRequest并附带几个选项例如仅本次允许 / 始终允许 / 拒绝。Atlas 后端把这条请求登记进一个待决队列等待你的决定——这正是整个权限系统的心脏。权限审批完整流程从智能体请求到界面卡片第 1 步智能体发起请求。Rust 驱动层捕获RequestPermissionRequest为它生成一个唯一的request_id存入并发安全的待决表PendingPermissions基于 DashMap并通过一次性通道oneshot挂起直到客户端给出答复。相关源码见 driver.rs。第 2 步事件推送到前端。驱动层发出PermissionRequest事件前端 chat-store 按每个会话一个队列组织待决权限卡片组件只订阅队首请求没来就保持安静。待决权限的数据结构定义在 acp.ts第 3 步你的决定回传给智能体。前端调用 agents_respond_permission Tauri 命令最终落到 respond_permission若你选了某个选项就回Selected(option_id)若取消就回Cancelled——智能体据此决定是否继续执行。前端入口在 agents-api.ts。审批卡片有 3 种形态审批卡片的渲染逻辑集中在 permission-modal.tsx它会根据请求内容自动切换三种形态1️⃣ 计划评审弹窗Plan Review当智能体提出执行计划如 ExitPlanMode时Atlas 弹出双栏大弹窗左侧是完整的 Markdown 计划正文右侧是带编号的审批选项底部有Cancel按钮。长计划内部滚动不会把关闭按钮挤出屏幕。2️⃣ 问题步进卡片AskUserQuestion智能体想向你提问时Claude Code 的AskUserQuestion工具questions.ts 会把结构化的选择题解析出来交给 approval-card.tsx 渲染成步进式卡片一步一题、单选/多选、进度圆点、可上一题下一题还支持自由文本作答。若答案恰好能映射到一个 ACP 权限选项就直接正式批准否则会把你的回答整理成一条消息发给智能体。3️⃣ 内联工具审批卡片最常见标准场景下一张紧凑卡片钉在输入框上方标题写着智能体想要执行xxx?下方是可预览的工具参数超长自动截断再下方是编号选项。每个选项按类型着色——允许类是主色调、拒绝类是红色还有一处贴心细节Atlas 会自动把选项文案里别的智能体的品牌名改写成当前会话实际绑定的智能体避免卡片喊错名字见 permission-modal.tsx 的品牌重写逻辑。键盘党福音最快审批快捷键卡片支持全键盘操作permission-modal.tsx按键作用1–9直接选中对应编号的选项Enter执行主操作通常是允许按钮上有 ↵ 标记Esc取消本次请求智能体会干净地退避输入文字 Enter走告诉智能体换个做法通道最后这条自由文本通道很巧妙ACP 协议本身没有文字回复路径Atlas 的做法是先取消权限请求再把你输入的话作为新消息发给智能体——等于直接告诉它别这么干改这么干。CLI 权限策略全解会话模式Session Modes审批卡片解决这一次怎么办而权限模式解决以后少问点。每个智能体在session/new响应里会声明自己的模式列表Atlas 通过 ACP 的session/set_mode切换set_session_modedefault默认模式敏感操作都要问acceptEdits文件编辑自动放行少一批弹窗plan计划模式智能体先出方案供你审dontAsk尽量不打扰bypassPermissions完全跳过权限请求——调用后智能体不会再发出任何RequestPermissionRequest这也是 Atlas 修复绕过模式还弹窗问题的关键。不同智能体的叫法不同例如 Codex 会声明read-only / auto / full-access三级。切换智能体时需要等进程冷启动几秒才能拿到模式列表所以 Atlas 把上次看到的模式持久化缓存acp-modes-cache.ts切换瞬间就能乐观预填模式选择器等真实会话确认后再对账。取消与清理权限弹窗的善后细节权限系统里最容易被忽视的是异常路径的处理取消一轮对话时cancel_turn 会立刻丢弃该会话所有待决权限让它们以Cancelled结果干净收尾同时丢弃后续迟到的请求——不会出现取消后几秒又蹦出一个弹窗的灵异现象一轮对话正常结束时take_pending_permissions 清空残留权限保证没有任何弹窗活过它所属的那一轮对话多个请求排队时卡片会显示后面还有 N 个待处理的提示让你心里有数。相关文件速查模块路径审批卡片渲染src/features/chat/components/permission-modal.tsx问题步进卡片src/features/chat/components/approval-card.tsx问题解析src/features/chat/lib/questions.ts前端权限 APIsrc/features/chat/lib/agents-api.tsACP 类型定义src/types/acp.ts模式缓存src/features/chat/lib/acp-modes-cache.tsRust 权限注册表crates/atlas-acp/src/registry.rsRust ACP 驱动crates/atlas-acp/src/driver.rsTauri 命令层src-tauri/src/commands/agents.rs写在最后Atlas 的权限系统可以概括为一句话协议层用待决队列 一次性通道把智能体的请求变成可取消的挂起状态界面层用三种审批卡片把决定权交还给你模式层用 CLI 权限策略把日常打扰降到最低。理解了这条链路你就能既享受多智能体并行的效率又牢牢握住每一次执行的安全绳。【免费下载链接】atlasSource control for agents. Use multiple coding agents, track their changes and query them in one place项目地址: https://gitcode.com/GitHub_Trending/atlas115/atlas创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表