mirror of
https://github.com/openclaw/openclaw.git
synced 2026-03-13 19:10:39 +00:00
Merged via /review-pr -> /prepare-pr -> /merge-pr.
Prepared head SHA: ad35a458a5
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Co-authored-by: gumadeiras <5599352+gumadeiras@users.noreply.github.com>
Reviewed-by: @gumadeiras
124 lines
3.2 KiB
Markdown
124 lines
3.2 KiB
Markdown
---
|
|
summary: "CLI reference for `openclaw agents` (list/add/delete/bindings/bind/unbind/set identity)"
|
|
read_when:
|
|
- You want multiple isolated agents (workspaces + routing + auth)
|
|
title: "agents"
|
|
---
|
|
|
|
# `openclaw agents`
|
|
|
|
Manage isolated agents (workspaces + auth + routing).
|
|
|
|
Related:
|
|
|
|
- Multi-agent routing: [Multi-Agent Routing](/concepts/multi-agent)
|
|
- Agent workspace: [Agent workspace](/concepts/agent-workspace)
|
|
|
|
## Examples
|
|
|
|
```bash
|
|
openclaw agents list
|
|
openclaw agents add work --workspace ~/.openclaw/workspace-work
|
|
openclaw agents bindings
|
|
openclaw agents bind --agent work --bind telegram:ops
|
|
openclaw agents unbind --agent work --bind telegram:ops
|
|
openclaw agents set-identity --workspace ~/.openclaw/workspace --from-identity
|
|
openclaw agents set-identity --agent main --avatar avatars/openclaw.png
|
|
openclaw agents delete work
|
|
```
|
|
|
|
## Routing bindings
|
|
|
|
Use routing bindings to pin inbound channel traffic to a specific agent.
|
|
|
|
List bindings:
|
|
|
|
```bash
|
|
openclaw agents bindings
|
|
openclaw agents bindings --agent work
|
|
openclaw agents bindings --json
|
|
```
|
|
|
|
Add bindings:
|
|
|
|
```bash
|
|
openclaw agents bind --agent work --bind telegram:ops --bind discord:guild-a
|
|
```
|
|
|
|
If you omit `accountId` (`--bind <channel>`), OpenClaw resolves it from channel defaults and plugin setup hooks when available.
|
|
|
|
### Binding scope behavior
|
|
|
|
- A binding without `accountId` matches the channel default account only.
|
|
- `accountId: "*"` is the channel-wide fallback (all accounts) and is less specific than an explicit account binding.
|
|
- If the same agent already has a matching channel binding without `accountId`, and you later bind with an explicit or resolved `accountId`, OpenClaw upgrades that existing binding in place instead of adding a duplicate.
|
|
|
|
Example:
|
|
|
|
```bash
|
|
# initial channel-only binding
|
|
openclaw agents bind --agent work --bind telegram
|
|
|
|
# later upgrade to account-scoped binding
|
|
openclaw agents bind --agent work --bind telegram:ops
|
|
```
|
|
|
|
After the upgrade, routing for that binding is scoped to `telegram:ops`. If you also want default-account routing, add it explicitly (for example `--bind telegram:default`).
|
|
|
|
Remove bindings:
|
|
|
|
```bash
|
|
openclaw agents unbind --agent work --bind telegram:ops
|
|
openclaw agents unbind --agent work --all
|
|
```
|
|
|
|
## Identity files
|
|
|
|
Each agent workspace can include an `IDENTITY.md` at the workspace root:
|
|
|
|
- Example path: `~/.openclaw/workspace/IDENTITY.md`
|
|
- `set-identity --from-identity` reads from the workspace root (or an explicit `--identity-file`)
|
|
|
|
Avatar paths resolve relative to the workspace root.
|
|
|
|
## Set identity
|
|
|
|
`set-identity` writes fields into `agents.list[].identity`:
|
|
|
|
- `name`
|
|
- `theme`
|
|
- `emoji`
|
|
- `avatar` (workspace-relative path, http(s) URL, or data URI)
|
|
|
|
Load from `IDENTITY.md`:
|
|
|
|
```bash
|
|
openclaw agents set-identity --workspace ~/.openclaw/workspace --from-identity
|
|
```
|
|
|
|
Override fields explicitly:
|
|
|
|
```bash
|
|
openclaw agents set-identity --agent main --name "OpenClaw" --emoji "🦞" --avatar avatars/openclaw.png
|
|
```
|
|
|
|
Config sample:
|
|
|
|
```json5
|
|
{
|
|
agents: {
|
|
list: [
|
|
{
|
|
id: "main",
|
|
identity: {
|
|
name: "OpenClaw",
|
|
theme: "space lobster",
|
|
emoji: "🦞",
|
|
avatar: "avatars/openclaw.png",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
}
|
|
```
|