理解持久Agent vs. 子Agent:这两种模式的生命周期和适用场景完全不同,不能混用,这是多Agent配置的基础。
| 特性 | 持久Agent | 子Agent (Sub-agent) |
|---|---|---|
| 核心定义 | 独立存在、有专属配置和记忆空间的“常驻角色”。 | 从主Agent会话中临时派生的“任务型角色”,依赖主Agent的上下文。 |
| 生命周期 | 永久运行,除非手动停止。 | 任务完成后自动归档,会话结束不保留。 |
| 配置特点 | 需配置独立工作区(workspace)、定义路由(bindings)、分配模型等。 | 无需单独配置,通过sessions_spawn命令动态创建。 |
| 适用场景 | 长期分工协作,如群聊里的专人专岗、日常办公助理、自动化工作流。 | 单次临时任务,如复杂任务的拆解执行、一次性调研、专项数据处理。 |
| 关键结论 | 群聊协同、长期分工必须用“持久Agent”。 | 临时补充、任务拆解用“子Agent”。两者的配置字段完全不同。 |
下面我们主要聚焦于如何配置一个“持久Agent”,配置一个持久Agent主要分为三个步骤:创建工作区、定义身份、设置路由。
创建工作区 (Workspace)
每个Agent需要有自己独立的“家”,也就是工作区,用于存放其配置文件和数据。
交互式创建
$ openclaw agents add Life
┌ Add OpenClaw agent
│
◇ Agent id ─────────────────╮
│ │
│ Normalized id to "life". │
│ │
├────────────────────────────╯
│
◇ Workspace directory
│ ~/.openclaw/workspace/life
│
◇ Configure model/auth for this agent now?
│ No
[info]: [ 'client ready' ]
│
◇ Set up a chat channel now?
│ Yes
……
│
◇ Select a channel
│ Finished
Updated config: ~/.openclaw/openclaw.json
Backup: ~/.openclaw/openclaw.json.bak
Workspace OK: ~/.openclaw/workspace/life
Sessions OK: ~/.openclaw/agents/life/sessions
│
└ Agent "life" ready.
非交互式创建
# 非交互式创建:会使用pwd,作为相对路径的起点。所以使用绝对路径吧。
$ openclaw agents add myLife --workspace ~/.openclaw/workspace/myLife
Normalized agent id to "mylife".
Updated config: ~/.openclaw/openclaw.json
Backup: ~/.openclaw/openclaw.json.bak
Workspace OK: ~/.openclaw/workspace/myLife
Sessions OK: ~/.openclaw/agents/mylife/sessions
Agent: mylife
Workspace: ~/.openclaw/workspace/myLife
Agent dir: ~/.openclaw/agents/mylife/agent
$ openclaw agents add bzWork --workspace ~/.openclaw/workspace/bzWork --bind Feishu
其他参数
--template <模板名称>
作用:创建时使用官方预置 Agent 模板自动生成 SOUL.md,不用手写初始人设
内置模板:coordinator、coder、translator、researcher、reviewer
--bind <channel [:accountId]>(可重复多次)
作用:绑定消息渠道路由,把指定渠道流量路由到当前 Agent
格式:渠道名:账号ID;省略 accountId 则使用该渠道默认账号
查看与删除
# 查看所有 Agent
$ openclaw agents list [--bindings]
# 删除 Agent
$ openclaw agents delete <agent-id>
会在~/.openclaw/openclaw.json文件中的 agents.list 数组中增加记录 ??
定义Agent身份 (Soul, Guide, Persona)
每个Agent的工作区目录下有几个关键的Markdown文件,它们共同定义了Agent的“灵魂”和“技能”,建议用大模型帮助你生成这些个性化内容。
- SOUL.md (灵魂):定义Agent的性格、语气、价值观和回应风格。例如,“你是一位严谨的代码审查专家,使用中文,风格简洁,每次回复必须包含代码块”。
- AGENTS.md (指南):定义Agent的工作流程、决策规范和使用工具的规则。例如,“修改代码前必须先
ls和pwd确认路径,修改后执行npm run test进行验证”。 - USER.md (用户档案):定义用户的偏好、习惯等信息,帮助Agent更好地了解你。
- IDENTITY.md / TOOLS.md / BOOTSTRAP.md:分别用于定义身份、工具许可和启动初始化任务等。
设置路由规则 (Bindings):渠道账号与Agent的绑定、查看和解绑
这是让Agent“活”起来的关键步骤。你需要通过bindings配置,告诉Gateway网关哪个消息应该由哪个Agent来处理。配置在~/.openclaw/openclaw.json文件中。
# 用默认别名(简写)
$ openclaw agents bind --agent bzWork --bind feishu
# 用真实完整账号ID
$ openclaw agents bind --agent myLife --bind openclaw-weixin:xxx-im-bot
# 解绑
$ openclaw agents unbind --agent mylife --bind openclaw-weixin:xxx-im-bot
# 查看绑定关系,还有 $ openclaw config get bindings
$ openclaw agents bindings
Routing bindings:
- bzwork <- feishu
- mylife <- openclaw-weixin accountId= xxx-im-bot
$ systemctl --user restart openclaw-gateway
配置效果
"bindings": [
{
"type": "route",
"agentId": "bzwork",
"match": {
"channel": "feishu"
}
},
{
"type": "route",
"agentId": "mylife",
"match": {
"channel": "openclaw-weixin",
"accountId": "xxx-im-bot"
}
}
]
发表回复
要发表评论,您必须先登录。