运行代理
由于不存在享有特权的“那个 agent“,每条驱动 agent 的命令都会指明所操作的对象。多个 agent 共存;你通过别名来指定其中某一个。
向 agent 寻址
在 CLI 上,必须指定 agent 别名,没有默认 agent:
sh
zeroclaw agent -a <alias> -m hello
别名是 [agents.<alias>] 块中的 <alias> 部分。有关完整的 CLI 界面和每个标志,请参阅生成的 CLI 参考。
共存与隔离
一次安装即可让多个智能体并行运行。每个智能体保留各自的工作区、记忆和身份(参见 Filesystem components),因此默认情况下,某个智能体的任何操作都不会泄露到另一个智能体中。它们仅共享其配置引用所共享的内容——一个 provider、一个 channel、一个 bundle。
智能体之间有两种相互访问的方式,每种方式都受到独立的访问控制:
- 在共享通道上的消息传递:两个代理只能在共享对等组的位置互相寻址。
- 委托:仅当同时满足以下两个条件时,一个代理才能将任务交给另一个代理——其自身风险配置的
delegation_policy.mode为allow(默认值为forbidden),且目标代理共享相同的风险配置。委托绝不会跨越信任层级,处于强化配置的代理无法委托给宽松配置的代理。共享的风险配置本身即为允许列表:提供给模型的受委托代理名单恰好就是与调用方处于同一配置的其他代理,并且仅在委托被允许时才会提供。完整的门控行为及确切的拒绝消息,请参阅委托与子代理。
当智能体需要一个一次性的辅助工具而非现有的对等体时,它会派生出一个临时的 SubAgent,该子智能体继承其身份和安全策略以完成单个任务,随后即销毁。
zerocode 中的代理
zerocode 是用于驱动智能体的终端 UI。两个窗格将一个智能体呈现在你面前:
- Code 窗格针对你的工作树运行代理以执行编码任务。
- Chat 窗格是智能体的对话式视图。
两个窗格各自驱动一个特定的智能体,zerocode 可以为每个智能体设置专属的配色方案,让你一眼就能区分它们,详见 按智能体主题。Config 窗格是添加和连接智能体的首选位置,无需手动编辑文件。
同时操作多个 agent
zeroclaw daemon 会同时启动每一个已启用的 agent,各自在自己的 channel 上响应。添加 agent 是增量式的:定义一个新的 [agents.<alias>] 块,配置好它的引用,它就会加入正在运行的集合,而现有的 agent 不受影响。
有关运行时内部机制、权限模型、内存模型和代理循环的信息,请参阅 Runtime internals。