很多人谈 Agent 安全,第一反应是:

“要给它加多少限制?”

但我们更关心另一个问题:

当一个 Agent 被限制到什么都做不了时,它还是助手吗?

一匹马跑得太快,当然可能摔倒。

最简单的办法,是给四条腿都拴上铁链。它不会再失控,也不会再带你去任何地方。

Agotalk 不想做这样的夹具。

这里先解释两个词。

“沙盒”,就是把 Agent 限定在电脑的一小块地方里。它只能看指定文件,只能做指定动作,越过边界就停下来问你。

“Harness”,则是让 Agent 能持续办事、留下记录、失败后还能接着做的一整套工作机制。

我们相信,好的 Harness 不是让 Agent 少做事,而是让它有方向、有证据、有退路。

这就是 Agotalk 的半沙盒策略。

试想,你让一位同事准备投标材料

需求文档在项目文件夹。

客户发来的 PDF 在下载目录。

品牌图片在桌面。

产品演示是一段需要转码的视频。

最终文件要放进共享交付目录。

如果这位同事每走一步都要问你——

  • 我能打开下载目录吗?
  • 我能读取这张图片吗?
  • 我能使用转码工具吗?
  • 我能写入共享目录吗?
  • 我现在可以继续吗?

最后,最忙的人还是你。

你没有把工作交出去。你只是换了一种方式亲自操作电脑。

这正是很多 Agent 的现实:模型很聪明,但它看到的材料是碎的,能做的动作是断的。用户不得不反复搬文件、开权限、补背景、盯进度。

Agotalk 选择让 Agent 面对一件完整的事务,而不是许多权限小题。

它可以使用绝对路径和个人目录里的文件,也可以调用完成工作所需的本机能力。投标材料是同一件事,Agent 就应该有空间把它从头做到尾。

这里必须把边界说清楚:Agotalk 不是操作系统级的全沙盒。

在受管任务里,Agent 有能力触达当前 Mac 用户本来就能访问的文件。它不是“你只给一个文件,它就永远看不到旁边任何东西”的产品。

Agotalk 会记录 Agent 调用了什么工具、执行了什么命令和得到了什么结果,但当前并不是操作系统级的逐文件监控器。一条命令内部究竟打开过哪些文件,不会全部自动列成访问清单。

因此,Agotalk 面向的是用户自己的 Mac、用户信任的项目和明确授权的工作。来源不明的代码、陌生人共用的电脑、生产系统最高权限,都不该直接交给这种模式。

五种产品,默认把用户放在不同位置

Codex、Claude Code、Gemini CLI 和 OpenHands 都在认真解决 Agent 安全问题。它们没有谁做错了,只是优先保护的东西不同。

如果只看默认或推荐的工作方式,可以简单理解成:

产品默认思路普通用户的感受更适合
Codex先在项目范围内自动工作,出项目或联网时再询问项目内顺畅,跨文件夹时可能被打断以代码项目为中心的工作
Claude Code先给命令画出安全范围,越界时再授权日常命令少询问,但不同工具可能有不同边界需要清晰命令边界的开发工作
Gemini CLI让用户选择不同强度的隔离方式很灵活,但需要理解和配置更多选项愿意自己配置执行环境的人
OpenHands默认把 Agent 放进独立环境,再把项目交给它环境稳定,但本机材料和工具要提前准备远程、多用户和可重复任务
Agotalk先确认这是可信的个人工作现场,再让 Agent 承接完整事务日常少打断,主要在业务决定上投入注意力跨文件、跨工具、持续数小时或数天的桌面工作

这张表比较的不是各家“最多能获得多少权限”。Codex 可以切到 Full access,Claude Code 可以增加允许位置,Gemini 可以选择更宽松的方式,OpenHands 也可以加入更多本机目录。

真正的差别是:产品默认把用户放在什么位置。

四家的主流思路是:先画出一块 Agent 可以自由活动的区域,越界时再扩大。

Agotalk 的思路是:先确认这是可信的个人工作现场,让 Agent 有空间完成整件事,再管住事实、环境和出错后的退路。

前者优先减少 Agent 对电脑的影响。

后者优先减少机器对人的打扰。

为什么不对你的 Agent 同事更友好些呢?

试想让一位同事完成重要提案,却只给他半份需求、几张脱离上下文的截图,以及一个打不开附件的账号。

即使他再聪明,成功率也不会高。

Agent 也是一样。

我们说“对 Agent 友好”,不是纵容它,也不是把所有信息不加选择地塞给模型。

它意味着:凡是完成当前事务真正需要的文件、历史、工具、身份和环境,都应该完整、可信地到达 Agent,而不是在层层权限和窗口之间被切碎或遗失。

你给它完整的任务现场,让它理解事情的来龙去脉,也给它真正完成工作的工具。

它回报这份信任的方式,不是一句更漂亮的回答,而是更少猜测、更少中断,以及更高概率交付可用的工作结果。

这是一条很朴素的因果链:

更完整、可信的任务信息
  → 更少的信息缺口
  → 更少的猜测与反复确认
  → 更连续的执行
  → 更高的任务成功概率

我们还没有把这条产品判断包装成一组未经验证的成功率数字。

但方向很明确:对 Agent 友好,最终是在替用户争取结果。

Everything is a file

Agotalk 的另一条信念是:Everything is a file。

重要事实应该留在一个人和 Agent 都能重新找到、读取、比较和接手的地方。

回到投标材料的场景。

Agent 忙了两个小时,界面显示“任务完成”。但成品没有文件,引用没有保留,操作过程随着窗口关闭一起消失。

这不叫完成,只是一个漂亮的成功动画。

在 Agotalk 里,成果要成为文件。执行过什么、做到哪一步、哪里失败,也要留下持久记录。界面关掉后,用户仍能重新找到它们。

早上回来,你应该能看见:

  • 任务做到哪一步;
  • 使用了哪些材料和工具;
  • 哪里失败;
  • 留下了哪些已登记产物;
  • 从哪里继续。

文件真相不是一种技术偏好,而是在释放人的注意力。

你不需要盯着 Agent 的每一步。需要回来时,事实仍在那里。

少管机器,多给结果负责

半沙盒不是完全放任。Agotalk 把护栏放在几个用户真正能感受到的地方。

它使用自己带来的工具

Agotalk 使用随软件安装的一套固定工具,不偷偷依赖你电脑上碰巧安装过的软件。

这样可以避免“开发者电脑能做,用户电脑不能做”,也避免 Agent 没有真正执行,却交出一份看似完整的结果。

缺少能力就明确报错,不假装成功。

两个 Agent 不会同时把同一份工作写乱

如果两个任务要同时修改同一个项目,后来者会明确停下,而不是悄悄覆盖前一个任务。

需要并行时,它们可以进入各自独立的工作副本。

Stop 不只是让界面停止转圈

停止任务时,Agotalk 会尽力把它启动的后台子任务一起停下。

如果无法确认是否完全停止,系统应该明确说“尚未确认”,而不是把未知状态显示成成功。

凭据有自己的范围

密钥不会从用户完整的电脑环境中被随意继承。它们按照全局或工作空间范围交给任务。返回到聊天里的命令结果,以及 Agotalk 管理的命令日志,会清理已知的敏感内容。

当前还没有做到逐任务最小授权。命令运行时,程序自己写出的日志也可能短暂出现明文,任务收尾后才会清理;Agent 另外生成的任意文件,也不会被全盘扫描和自动脱敏。

所以,普通工作应使用权限有限、可以撤销的工作密钥。不要把生产系统的最高管理员密钥交给无人看管的任务。

误删可以有一条额外退路

Agotalk 提供可选的 Safe RM。开启后,普通删除会优先把文件移进 macOS 垃圾桶。

它当前默认关闭,也不能覆盖所有删除方式。因此它是一项可选的额外护栏,不是 Agotalk 安全承诺的全部。

我们宁愿把保护不到的地方说清楚,也不愿用“绝对安全”换取一时信任。

半沙盒适合什么,不适合什么?

它适合:

  • 你自己的 Mac;
  • 你信任的项目和材料;
  • 需要跨文件夹、跨工具完成的真实事务;
  • 持续数小时或数天、但你不想一直盯着的任务。

它不适合:

  • 打开来源不明、可能带有恶意内容的项目;
  • 让陌生人共用同一个执行环境;
  • 把生产系统最高权限交给无人看管的任务。

面对这些工作,应该把 Agent 放进一台临时、隔离的电脑环境里,任务结束后整个销毁。

半沙盒不是强隔离的替代品。

它是可信个人桌面场景下,对能力、摩擦和结果的一次明确取舍。

最后一个判断标准

评价一个桌面 Agent,不要只问:

“它弹了多少次权限确认?”

而要问:

  1. 它是否真的拥有完成整件事的能力?
  2. 它是否拿到了完整、可信的任务信息?
  3. 人离开以后,成果和记录是否仍然存在?
  4. 两个 Agent 会不会把同一份工作写乱?
  5. 误操作是否有退路?
  6. 系统是否诚实说明自己保护不到哪里?

Agent 越强,越不能只靠一句“请小心操作”。

但安全也不等于把马腿绑住。

Agotalk 的选择是:

让 Agent 有能力抵达目的地,让 Harness 管住方向、事实和退路,把用户的注意力还给真正重要的事务。

我们不想赢一场“谁给 Agent 加的限制更多”的比赛。

我们只想为 Agent 打造一个舒适居住的家,让它获得完整的工作现场、可靠的工具和充分发挥能力的空间。

Harness 应该帮助它抵达,而不是用官僚式的沙盒主义蹩住它的腿。

参考资料