Files
openclaw-config/skills/agent-provisioning/SKILL.md
T
openclaw-314 83439ee623 feat(agent): 建立 agent 创建规范与数据库自动化
- scripts/new-agent.sh:建库/建号/授权/写 .env/创建 agent/渲染中文模板/自检,幂等且默认拒绝覆盖
- scripts/agent-templates/:5 个中文模板(IDENTITY/SOUL/AGENTS/MEMORY/USER)
- skills/agent-provisioning/:main 创建 agent 的唯一入口与红线(description 覆盖中英触发说法)
- workspace/:修复悬空 gitlink,将 9 个配置文档纳入版本控制(含新增创建 agent 与数据库红线)
- docs/:设计文档(含附录 A 实测发现)、实现计划(含 sudo 事故修正)
- .gitignore:workspace 白名单,避免数据/技能/媒体进入版本库
2026-09-16 11:18:16 +08:00

49 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: agent-provisioning
description: "新建 / 新增 / 创建 OpenClaw agent 的唯一正确流程。触发说法(中英皆可):「新建 agent」「新建一个 agent」「新增 agent」「创建 agent」「加个 agent」「开一个 agent」「再来一个助手」「给某人开一个助手」「建个机器人」「加一个专属助理」以及 create a new agent / new agent / add an agent / create an assistant。流程为 agent 建专属 MySQL 库、专用账号、中文配置与 workspace,并禁止自行拼 SQL 建库。"
---
# 新建 agent(唯一正确流程)
## 何时使用
用户表达"新建 / 创建 / 增加一个 agent(助手 / 机器人 / 专属助理)"时。
## 唯一正确做法
```bash
bash ~/.openclaw/scripts/new-agent.sh <id> '<中文名>'
```
- `<id>`ASCII,小写字母开头,只含 `[a-z0-9-]`,≤24 字符(例:`reading`
- `<中文名>`220 字符,不含空白(例:`阅读`
先与用户确认这两个值,再执行。
**⚠️ 中文名必须用单引号包裹** —— 否则 `&`、空格等 shell 元字符会被解析。
实测教训:`bash new-agent.sh tchk 探针&巡检` 被 shell 拆成「后台执行 `… tchk 探针`」+「再执行 `巡检`」,
**意外触发了一次真实创建**。中文名还应尽量避免 `&` `/` `$` 与反引号。
**`--dry-run` 不是纯只读**:脚本会先做冲突检查,因此库/账号/agent 已存在时 `--dry-run` 同样会被拒绝(刻意设计,避免预览掩盖冲突)。
## 红线(禁止)
- ❌ 禁止自行拼 SQL 建库、建账号
- ❌ 禁止用 `mysql` / `docker exec` 直接操作数据库来创建 agent
- ❌ 禁止为建库读取或使用 root 凭据
- ❌ 禁止手工创建 `workspace-*` 目录或手改 `openclaw.json` 的 agents 条目
以上任一被绕过,都会造成"库存在但未被备份登记 / 账号缺失 / 配置中英混杂"的不一致。
## 执行后
脚本会输出四行结果(`DATABASE` / `USER` / `PASSWORD_ENV` / `WORKSPACE`)。
把结果转述给用户,并提示:新库将在**次日 03:00 自动进入每日备份**。
## 参数
| 参数 | 用途 |
|---|---|
| `--dry-run` | 只打印将执行的 SQL 与文件操作,不落地(先给用户看过再执行) |
| `--reset-password` | 仅重置已存在 agent 的账号密码(库/账号已存在时用) |