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 白名单,避免数据/技能/媒体进入版本库
This commit is contained in:
2026-09-16 11:18:16 +08:00
parent 0b20494f78
commit 83439ee623
22 changed files with 1054 additions and 7 deletions
+48
View File
@@ -0,0 +1,48 @@
---
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 的账号密码(库/账号已存在时用) |