Archer OS:为AI Agent建立操作系统级权限治理规范 你让 AI 帮你做三件事把会议纪要整理进日历给参会人发一封邮件再把相关文件同步到共享目录。听起来不复杂但真让它放手去做麻烦的不是这三个动作本身而是另一个问题它到底有没有权限做这些事做到哪一步应该停下来问你做错了之后怎么收回Archer OS 正是想回应这个问题的规范草案。这个草案的完整描述很克制为 AI agents 在 OS 权限授权下操作应用系统提供一份设计规范。它没有承诺一个现成可安装的系统更像是在给 AI 与操作系统之间的关系重新划线。按我的理解如果这个方向成立它带来的变化不是“AI 又多了一个新工具”而是 AI 代理第一次在操作系统层面拥有了一个受管身份。相比“帮 AI 学会点按钮”的方案Archer OS 更关心“AI 按什么规则按按钮、按到哪一步必须停下来、按错了怎么撤回”。这个思路的差异可能会影响未来几年桌面端 AI Agent 的产品形态。1. 先搞清楚Archer OS 解决的不是“自动化”而是“授权”问题1.1 从“能操作”到“被允许操作”隔着的不是提示词是一层权限治理现在市面上的 AI 助手已经能做到“看懂屏幕”和“模拟点击”。你喂给它一句指令它可以自动打开某个软件、填写表单、点击按钮甚至跨多个应用完成任务。这种能力用来做演示很震撼但放到真实工作环境里大部分人不会放心让它直接上手操作财务系统、邮件客户端或客户管理系统。原因不在模型能力而在授权关系的不完整。传统软件系统里谁能在什么时间、对哪个资源执行什么操作通常由账号体系和角色权限控制。但当 AI 代理以“模拟用户操作”的方式介入时它实际上是在借用当前用户的权限却没有一个清晰的权限边界。它“能”操作系统里的任何东西因为它继承了用户的全部权限。这里的“能”并不是授权意义上的“有权”而是技术路径上的“没人拦住”。Archer OS 想做的事就是在这一层补上治理机制。它试图提出一种规范让 AI 代理在执行应用操作之前先向操作系统声明自己的身份和意图操作系统按策略决定是否放行、按什么粒度放行并对每一次操作留下记录。这样一来“AI 能操作某个应用”就不再是一个技术事实而是一个受控的授权结果。1.2 传统脚本、API 调用和界面自动化为什么都补不上这个缺口对比一下现有的三条技术路径就能理解为什么 Archer OS 选择从操作系统层面切入。传统脚本和 RPA 工具本质上是预先编排好的指令序列。它们通过模拟鼠标键盘或调用 UI 控件接口来操作应用优点是稳定可控但脚本本身不感知上下文变化一旦界面改版或流程变化就需要人工维护。更重要的是脚本运行时的权限边界非常模糊要么借用当前用户权限要么另建一个高权限账号很难做到细粒度的动作级授权。大模型加上应用 API 的路线看起来更优雅。AI 直接调用应用的开放接口理论上每个接口都可以定义权限范围。但现实问题是不同应用对接口权限的定义方式差别很大有的应用只提供“读取全部”和“写入全部”两级权限有的应用干脆没有稳定的开放接口。你让 AI 操作一个没有 API 的旧版办公软件这条路就走不通。界面自动化路线也就是让 AI 通过视觉识别和事件注入来操作应用是目前许多 Agent 产品采用的方式。它不依赖 API通用性最强但也是最难治理的一种方式。因为操作系统只能看到鼠标移动、键盘输入和窗口事件无法判断当前动作是在“读取文档”还是在“删除文件”。没有语义层面的动作分类审计和拦截都很难做。Archer OS 的价值正是尝试给这种“界面自动化”增加一个语义层。它希望应用把可执行动作声明成结构化的能力让操作系统理解 AI 在做什么然后决定要不要放行。比起单纯模拟点击这是一个从根上解决问题的思路。1.3 主判断OS 授权不是给 AI 加限制而是给 AI 一个受管身份我见过不少团队对“Agent 权限管理”的第一反应是这会让 AI 变得畏手畏脚影响效率。这个担心有一定道理但并不准确。OS 级别的授权管理不是为了拖慢 AI 的执行速度而是为了让 AI 在真实系统里获得可以被信任的身份。一个没有身份、没有边界、没有审计的 AI 代理做成了事可以皆大欢喜一旦做错后果往往很难收敛。它可能批量发错邮件、误删文件、修改配置而你在事后连“它到底做了什么”都很难查清楚。反过来如果 AI 代理在操作系统里拥有一套明确的权限模型它反而可以更高效用户可以提前设置规则比如“允许 AI 读取日历但发送邮件前必须经过确认”AI 遇到边界时自动停下请求授权而不是默默执行完所有操作再告诉用户结果。这种模式对用户来说更安全对 AI 来说也更容易建立信任。所以我对 Archer OS 这个草案的定位是它不是在给 AI 套上枷锁而是在给 AI 发一张“工作证”。工作证上写清楚你能进哪些门、能碰哪些东西、什么时候失效。没有这张证AI 寸步难行有了这张证AI 才可能在真实系统里长期工作。2. 为什么“让 AI 操作应用”这件事绕不开操作系统这一层2.1 应用自己管不住跨应用行为只有 OS 有全局视图一个很现实的问题是单一应用层面的权限控制永远管不住跨应用的复杂任务。假设一个 AI 代理收到指令“把销售部发来的合同整理到共享文件夹然后提醒财务负责人。”这条任务链至少涉及邮件客户端、文件管理器、即时通讯软件三个应用。如果每个应用各自管理自己的权限AI 在邮件里拿到附件、在文件系统里创建目录、在聊天软件里发送通知这三个动作之间没有统一的监管视图。某个应用可能允许 AI 读取联系人另一个应用可能允许 AI 发送消息但没有任何一个应用能看到“AI 正在把联系人信息从 A 应用搬到 B 应用”这个完整行为。操作系统是唯一能在全局看到进程、窗口、文件、网络、设备等资源的层次。它知道一个进程正在读取哪个文件正在访问哪个网络地址正在往哪个窗口发送事件。把 AI 代理的权限管理放在操作系统中才能对跨应用行为做统一判断。这也是 Archer OS 选择“OS authority”作为核心立场的根本原因。2.2 权限边界要长在进程与会话上不能长在提示词里我经常看到一个误区通过精心设计提示词来约束 AI 的行为边界。比如在系统提示里写“不要删除任何文件”“不要修改系统配置”以为这样就能防止 AI 越权。实际情况是提示词只能影响模型生成的文本无法约束模型驱动的工具执行。一旦 AI 通过自动化接口直接操作系统提示词里的“不要”就变成了一种软约束。模型可能理解错了指令、可能上下文被污染、可能因为某个模糊表达而做出意外操作。把安全边界建立在提示词上就像把防盗门建在纸面上。真正的权限边界必须落在运行时。这个过程类似于 Linux 系统中进程的 uid、gid 和 capabilities一个进程能做什么不取决于它自称是谁而取决于内核分配给它的身份和权限集合。面向 AI Agent 的操作系统模型也应该如此——系统为 AI 代理创建一个受管主体这个主体拥有自己的权限策略所有操作都经过策略引擎检查。这样即使模型本身“想错了”系统层面也拦得住。2.3 从“用户进程”到“用户Agent操作策略”的新主体模型传统操作系统的权限模型核心是“用户”和“进程”两个主体。用户登录系统进程以该用户身份运行文件系统按用户权限控制访问。这套模型服务了个人计算机和企业服务器几十年但它没有为“半自主 AI 代理”设计。AI 代理不是普通用户它不是登录后坐在屏幕前操作的人它也不是传统意义上的进程因为它会主动发起一系列操作并且可能横跨多个应用。Archer OS 如果要落地就需要在操作系统的主体模型里新增一类对象Agent。这个 Agent 对象需要有独立的标识、独立的权限策略、独立的数据访问范围甚至独立的审计日志。它和当前登录用户有关系但不等于当前用户。也就是说AI 是在“用户的委托”之下拥有权限而不是直接继承用户的所有权限。类似企业里给实习生发一把门禁卡能进公司大楼但只能进特定楼层而且刷卡记录可查。这个类比虽然简单但很贴近 Archer OS 想表达的方向。在设计上这里会涉及几个关键的新概念Agent 身份、操作声明、授权策略、审计记录、撤销机制。操作系统需要为每个 Agent 维护一份运行时权限状态并负责在操作发生时完成检查、放行和记录。工作量不小但只有建好这一层AI 代理才算真正进入“受管系统”。3. 一个 OS Authority 下的 Agent 权限模型会包含哪些关键设计3.1 身份层每个 Agent 都要有一个最小特权的权限主体在常见实践里给外部系统或服务分配权限时最佳做法不是直接使用管理员账号而是创建“服务账号”只授予它完成特定任务所需的权限。Agent 在操作系统中的身份也应该沿用这个思路。这意味着每个 AI 代理实例都需要一个独立的主体标识而不是统一使用当前用户的账号。系统可以给某个 Agent 分配“可访问联系人列表”“可读取日历事件”“可发送工作群消息”等细粒度权限。Agent 启动后它的操作都以这个主体身份进行操作系统在权限策略中限定它的行为边界。这样做还有一个好处当审计发现问题时可以精准定位到是哪个 Agent、在哪个时间段、执行了哪些操作。如果所有 AI 都借用用户权限出了问题根本不知道是哪个代理干的。3.2 能力层应用先把可执行动作声明出来OS 再决定放不放行如果说身份层回答的是“谁在操作”能力层回答的就是“它能操作什么”。对于传统应用操作系统很难理解“点击某个按钮”到底意味着什么。它可能是在发送邮件可能是在删除文件也可能只是切换页面。Archer OS 要解决这个问题就需要应用侧提供能力声明。能力声明可以理解成应用给自己写一份“功能说明书”描述哪些操作可以被 AI 代理调用、每个操作需要什么参数、属于读取还是写入、风险等级高低。操作系统拿着这份声明结合 Agent 的权限策略才能做出准确的放行判断。下面是一个简化的示意结构{ app_id: example-mail-client, capabilities: [ { action: email.read, args: [folder, message_id], risk: read }, { action: email.send, args: [to, subject, body], risk: write }, { action: email.delete, args: [message_id], risk: destructive } ] }在这个模型里应用不再是一个黑盒而是把可执行动作透明化。OS 的策略引擎可以轻松判断当前 Agent 是否有权调用email.send是否需要弹窗让用户确认是否需要在调用后记录审计日志。这套机制有点像移动端的应用权限声明只不过粒度更细从“是否允许访问麦克风”细化到“是否允许发送邮件”。3.3 授权层临时、会话、持久三种粒度的取舍有了身份和动作定义接下来要决定的是授权粒度。不是所有任务都需要永久权限也不是所有操作都要每次都问用户。设计一套合理的授权策略是决定体验和安全平衡的关键。授权类型示例优点风险临时授权只允许本次读取文件名最小暴露用完即收回高频操作会频繁打断用户会话授权本次任务流程内允许写入文档流程顺滑任务结束自动失效会话内可能发生误操作持久授权长期允许读取日历事件不需要反复确认策略变更不及时可能留后门从工程经验看更安全的默认策略是“临时授权优先会话授权由用户显式开启持久授权必须经过更严格的确认”。因为权限的生命周期越长出问题的概率越高。AI 可能会在未来的某个任务中错误地复用了之前的持久授权。3.4 撤销层真正难的不是放行而是收回授权模型里最容易被忽略的一环是撤销。很多系统在设计权限时只考虑了“如何放开”没有认真设计“如何收回”。传统应用的操作往往不具备事务性。一个 AI 代理可能已经打开了某个文档、修改了部分内容、把文件复制到了新目录这时候如果用户发现授权过于激进想立即终止任务系统要做的不是简单地停止生成文本而是要回收正在进行的所有操作句柄。这包括关闭文件描述符、终止子进程、吊销 API 令牌、撤销已注入的窗口事件甚至回滚已经部分执行的逻辑。在现有架构里这很难做到完美因为应用本身不一定支持事务语义。但 Archer OS 这种规范的价值在于它至少要把“撤销”作为一等的设计目标写进规范让应用和操作系统都意识到授予权限只是开始随时能把权限收回来才是一个受管系统真正的成熟标志。4. 落地时怎么从“最小流程”走到“可审计、可撤销、可追溯”4.1 最小闭环一个受控环境里的 Agent 操作 App 流程如果项目还在草案阶段不要急着想一套大而全的生产系统。更合理的做法是先搭建一个最小闭环验证几个关键问题Agent 能否申请到最小权限OS 能否拦截越权操作授权后的动作能否被完整审计一个常见的最小闭环流程是这样的1. 用户向 Agent 提出一个明确任务。 2. Agent 将任务拆解为操作计划。 3. Agent 向 OS 申请执行某项操作所需的权限。 4. OS 根据策略判断直接放行、需要用户确认或直接拒绝。 5. 用户确认后OS 发放一次性或会话级授权令牌。 6. Agent 在授权范围内操作目标应用。 7. 每次操作写入审计日志。 8. 任务结束或触发异常时OS 收回令牌并关闭相关句柄。这个流程不必一开始就在真实生产系统上跑。更推荐的做法是先在虚拟机或容器里搭建一套模拟环境只允许 Agent 操作几个测试应用并且把所有写操作、删除操作拦截下来。等流程稳定了再逐步放开更多应用和权限。4.2 先跑单次样例再放开批量操作顺序很重要我在看很多自动化项目时都会发现同一个问题大家在演示阶段只跑单次任务容易忽略批量场景下的风险放大效应。单次操作出错影响的可能是一个文件批量操作出错影响的就是几百个文件。所以无论 Archer OS 这类规范最终怎么落地“从小样本开始”都应该是一条铁律。建议的顺序是第一步用一条最典型的任务样例验证授权、执行、撤销、审计四个环节都能跑通。第二步用五到十条覆盖不同输入条件的样例验证边界情况比如空输入、超长输入、应用无响应、权限不足等情况。第三步才考虑批量任务并且要设置“操作次数上限”和“用户确认节点”避免 Agent 在无人监督的情况下连续执行大量高风险操作。这里有一个容易被忽略的点批量任务出错时最先要查的不是模型逻辑而是“授权是否在某个中间步骤失效了”。很多 Agent 系统在连续操作一段时间后会话令牌过期、应用窗口状态变化、用户锁屏等原因会导致操作中途失败。这时候如果审计日志不够完整排查会变得非常痛苦。4.3 审计日志至少要覆盖哪些字段审计是 Agent 权限模型里最基础也最重要的部分。没有审计“授权的完整性”就无从谈起。为了让审计记录有用日志至少要覆盖以下字段字段说明agent_id哪个 Agent 执行的操作permission_id使用的是哪一次授权user_approved是否经过用户显式确认target_app目标应用标识action具体动作类型args_summary关键参数摘要避免记录完整敏感内容timestamp操作发生时间result成功、失败、被拒绝或超时session_id对应哪个会话和任务链在设计审计时一个容易踩的坑是“为了合规而记录一切”把大量文件内容、邮件正文、聊天记录都塞进日志。这既会带来存储压力也增加了敏感数据泄露的风险。更推荐的做法是只记录操作元数据和行为摘要对于具体文件内容或邮件正文只记录哈希值或指向原始数据的索引。4.4 异常熔断与撤销当 Agent 开始失控怎么让它停下来权限系统的存在意义不只在于“允许谁做什么”更在于“发现问题时能不能及时让失控的操作停下来”。我建议在规范设计里加入三个机制第一操作频率监控。如果 Agent 在短时间内请求的操作数量远超正常水平系统应该自动挂起它的权限并通知用户确认是否继续。不要等到文件被批量删除之后才暴露问题。第二风险动作二次确认。删除、发送、转账、覆盖写入等高风险动作默认都应该触发用户确认除非用户对某个 Agent 明确设置了“可信任”策略。第三急停按钮。这不是界面上的装饰而是一个真正能强制终止所有 Agent 相关进程、吊销所有授权令牌的机制。设计时要注意急停不能让 Agent 自己调用只能由系统或用户触发。这部分的工程难度比表面的权限检查大得多因为“立即终止”涉及进程树、窗口消息、文件句柄、网络连接等多个层面。规范能做的是先定义清楚撤销的目标状态再让各平台实现具体的回收机制。4.5 异常排查从授权记录开始而不是从代码开始有一次排查 Agent 操作事故时团队花了很长时间看模型日志和提示词最后才发现问题不在生成逻辑而是某个权限策略配置错了Agent 被授予了读取联系人权限却在执行时意外获得了联系人删除权限。如果团队一开始就查授权记录几分钟就能定位问题。对于 Agent 权限类问题我建议按这个顺序排查先看授权记录这次操作有没有经过授权授权范围是什么再看目标应用应用是否正常响应窗口是否在前台状态是否异常再看动作映射Agent 想执行的动作是否真的对应到了应用的正确能力最后看审计日志完整的时间线和操作摘要是否能还原事故过程。“没有授权记录”和“有授权记录但权限范围过大”是两种完全不同的问题。前者说明权限检查链路失效后者说明权限策略配置不当。不区分清楚就盲目调模型参数只能算治标不治本。5. 这套 spec 的适用边界在哪里5.1 适合哪些场景任何需要 AI 跨应用操作、且用户对安全有较高要求的场景都是 Archer OS 这类规范的目标场景。典型场景包括企业内部办公自动化AI 自动整理邮件、安排日程、生成周报数据归集与迁移AI 读取多个业务系统的数据并写入统一报表关键流程辅助AI 在 CRM 系统里更新客户状态之前先获得用户确认。这些场景的共同特点是操作必须可追踪、越权必须可拦截、出错必须能撤回。对普通个人用户来说如果只是让 AI 查天气、做翻译引入 OS 级授权模型确实显得重。但只要你开始让 AI 操作本地文件、邮件、聊天记录、账号配置这套权限模型就有价值。你未必需要马上搭一个完整系统但至少应该意识到AI 能碰哪些数据应该由你说了算。5.2 不适合哪些场景任何方案都有边界Archer OS 也不例外。第一个不适合的场景是“完全自由探索型”任务。如果用户希望 AI 在一台测试机上自己摸索各种操作快速试错那么每一步都做权限检查和审计反而会拖慢效率。在这种场景下更合适的方式是直接给一个隔离沙箱让 AI 在里面任意折腾。第二个不适合的场景是“极低时延的实时交互场景”。比如 AI 需要根据用户的声音指令实时操作播放器此时每一次操作都要经过 OS 策略引擎、用户确认、审计记录延迟会明显增加。如果时延敏感就需要对部分高频低风险操作做白名单加速而不是全部走完整授权链。第三个不适合的场景是“无适配能力的旧应用”。老式桌面应用没有能力声明机制也没有稳定的 UI 控件可识别Archer OS 的语义层很难接入。这种情况下只能退回传统的界面自动化路线同时也得接受安全性和审计能力的下降。5.3 它现在还缺什么一份规范草案到生产级方案之间通常还隔着很多工程细节。最明显的缺口是应用生态的适配。即使操作系统层面把权限模型设计得再完善如果主流应用不声明自己的能力清单OS 也无法理解 AI 的跨应用操作。这需要一套开发者友好的 SDK、清晰的声明文档、以及足够吸引开发者的生态激励。其次是跨平台统一问题。Windows、macOS、Linux 的权限体系和 UI 自动化机制差异很大一个统一的规范需要在抽象层处理好这些差异否则就会出现同一套 Agent 流程在不同平台上表现不一致的情况。还有撤销机制的兜底。很多应用本身不支持事务性操作一旦 AI 执行了“发送邮件”这种不可逆动作系统能做的只有记录日志和告警无法真正撤回。规范需要为这类不可逆动作定义明确的风险等级和处理策略。5.4 对应用开发者和架构师来说意味着什么如果 Archer OS 这类方向成为趋势应用开发者需要考虑的事情会发生变化。以后开发桌面应用时不只是提供图形界面和键盘鼠标操作还要考虑“应用可被 Agent 操作”。这意味着需要提供能力声明、定义动作参数、设置风险等级、支持外部撤销。相当于给应用增加了一层“可编程操作面”。对于后端架构师和 DevOps 工程师来说他们需要重新思考 Agent 的权限架构。不是简单地把 Agent 塞进一个容器里运行而是要考虑 Agent 的身份管理、权限策略下发、审计数据采集、异常熔断机制。这些能力在现有基础设施里可能需要额外开发。这个变化很像早期移动互联网时的权限治理过程当应用开始调用摄像头和通讯录系统必须发展出运行时权限申请机制。今天当 AI 开始操作桌面应用操作系统也需要发展出属于 Agent 的权限模型。6. 以后看同类规范抓住这几个判断标准就够了6.1 三个必查项授权主体、审计闭环、撤销路径以后再看到类似的 AI Agent 权限规范或开源项目不用被演示视频冲昏头脑。抓住三个问题去评估就够了。第一有没有明确的授权主体系统能不能区分“哪个 Agent 正在操作”并且只授予它最小必要权限如果所有 Agent 都共用当前用户权限那不管文档写得再好本质上是裸奔。第二有没有完整的审计闭环审计不是只记录“AI 运行了一次”而是要记录到具体的动作级别并且能够回答“这个 Agent 在什么时间、对哪个应用、执行了什么操作、结果如何”这四个问题。第三有没有强制的撤销路径系统是否能在操作中途收回授权是否能终止长任务是否能关闭 AI 启动的子进程如果设计方案里没有考虑撤销那它更适合做“自动化玩具”而不是“受管 Agent”。6.2 一张评估框架四层模型表把前面讨论过的内容提炼一下可以从四个维度评估一个 Agent 权限方案是否成熟维度该问的问题成熟方案的特征身份Agent 是否有独立标识有独立权限主体不只复用用户身份能力应用是否能声明可执行动作有结构化能力清单支持读写风险分级授权权限粒度是否合理支持临时、会话、持久授权默认最小权限运营是否能审计和撤销有完整动作日志能随时收回授权和终止任务这四个维度从“我是谁”到“我能做什么”再到“我被允许做什么”最后落地到“出了问题能不能查、能不能停”。逻辑上是一层比一层更接近生产环境。6.3 两个容易误判的地方第一个误判是“只用 API 就能避免越权”。事实上API 权限模型是由各个应用方自己定义的粒度参差不齐。有些应用 API 根本不区分读取和写入有些应用 API 甚至不校验调用方权限。API 化不等于治理化更不等于安全。第二个误判是“权限越多AI 能力越强”。短期看确实如此但长期来看权限过宽的 AI 会成为事故放大器。一次错误的文本生成最多影响一段文字一次错误的“删除文件”操作可能摧毁一段时间的劳动成果。真正高效的生产型 AI应该是在清晰边界内执行任务的 AI而不是全知全能但不受控的 AI。6.4 给普通开发者的一句话建议如果你正在考虑把 AI Agent 接进自己的桌面应用或企业内部系统不要从“这个 AI 能做多少事”开始设计而是从“这个 AI 不应该碰什么”开始设计。列出高风险操作清单定义 Agent 的身份和权限边界再逐步放开。这个顺序比任何一份炫酷的演示都重要。Archer OS 这类草案真正的价值不在于它是否能立刻变成可安装的系统而在于它推动大家重新思考一个问题在一个 AI 无处不在的时代操作系统应该如何定义“受信执行者”。单次跑通一个 AI 任务并不难难的是让整个系统在授权、审计、撤销这些环节里始终对 AI 保持清晰的边界感。以后再看任何 Agent 项目先不要问它演示得有多顺滑。先问一句如果这个 AI 做错了系统到底能不能拦得下、查得出、撤得回这句话是所有 Agent 权限治理方案绕不开的试金石。