OpenClaw 实用技巧:便宜模型跑日常,贵模型处理特定复杂任务.
大家好,还是继续和大家分享使用 OpenClaw 过程中的一些经验。
用 OpenClaw 一段时间后,大家可能都会有这样一个需求——简单日常事务用轻量级模型就够了,只有复杂任务才需要用更贵的模型来保证质量。
这就引出了今天要和大家聊的话题 sub agent。
Sub Agent
我们前面聊过, 一个 OpenClaw 服务, 可以同时运行多个 agent。 而且这些 agent 之间是可以建立某种从属关系的。
先简短聊一下背景。 大家可能会有一个疑问,我们最开始说的是,怎么让 OpenClaw 把简单任务和复杂任务使用的模型区分开,怎么又聊到了 sub agent 了呢。
主要原因是因为, OpenClaw 当前版本,如果在同一个 agent 中,是没有办法根据用户的提示词或者某些条件动态选择模型的。 对于同一个 agent,我们只能配置主模型,和 fallback 模型。这个配置是技术上的配置,只要当主模型当前不可用,才会去选择 fallback 列表中的模型,而不是根据我们的业务流程来动态选择模型。
如果我们想达到某些任务用比较贵的模型,而大多数日常任务用一个便宜的模型,就可以通过 sub agent 来解决。
比如这样配置:
{ agents: { list: [ { "id": "main", "name": "main", "subagents": { "allowAgents": ["advance"] } }, { "id": "advance", "name": "advance", "model": { "primary": "deepseek/deepseek-v4-pro" } } ] }}
上面配置了两个 agent, 一个是 main,另外一个是 advance。 其中 advance 中的主模型可以配置一个用来处理复杂任务的。
然后 main 中,使用 subagents 这个配置项, 把 advance 配置成他的 sub agent。
这样 main 和 advance 两个 agent 的关系就建立好了。
快速测试
配置好 sub agent 后,我们可以用下面这个命令直接测试, 在 web 界面中, 打开主 agent 的会话,比如我们前面配置的 main 这个 agent,然后输入:
/subagents spawn advance 提示词
这样就会直接把我们当前的提示词转到 advance 这个 agent 中去运行。
结合 Skill
上面和大家说的是直接在聊天窗口通过 /subagents spawn 这个命令直接调用的方式。 我们还可以直接把它写在 skill 文档中, 比如这样:
如果你是 agent=main。 用 sessions_spawn 工具,给 advance 发送消息,给他提供必要的参数, 让他去做这件事情。
这里面提到了 sessions_spawn 这个工具, 实际上它是 OpenClaw 内置的 Tool , 专门用于调用 sub agent:
上面和大家说的 /subagents spawn 命令, 也是用的这个 Tool。
总结
这次和大家聊的就是根据任务类型,动态分配模型使用的方法。 Skill 结合 sub agent, 这是目前我能想到的能达到这个需求流程的一个方法。
当然, 更自然的方式,我觉得还是在同一个 agent 中能够直接根据业务流程来切换模型,但是目前版本的 OpenClaw 还不支持这样。
这次先聊这么多,希望对大家有帮助。
夜雨聆风