feat(agent-db): 引入 db-conn.sh 统一数据库入口,各 agent 改用专用账号

- 新增 scripts/db-conn.sh:按 agent id 反查中文名,读 .env 后经 MYSQL_PWD 转发给 docker exec,口令不进 argv/stdout,--print 只输出占位符
- new-agent.sh 新增 --adopt 模式(为既有 agent 补建库/账号),与 --reset-password 互斥
- AGENTS.md.tpl 与 11 个 workspace-*/AGENTS.md 改用 db-conn.sh,禁用 root 与 docker exec 直连
- mysql-schema-sync 技能改用 MYSQL_PWD_SQL 环境变量,不再硬编码密码
- 设计文档补附录 A 第 8 条:中文键名无法注入 agent 环境的三条实测依据
This commit is contained in:
2026-09-16 11:30:55 +08:00
parent 75d3aa8067
commit 31c9958741
16 changed files with 315 additions and 14 deletions
+7
View File
@@ -7,6 +7,13 @@
2. 读取 `MEMORY.md` 获得历史上下文
3. 检查并初始化 MySQL 数据库 finances
## 数据库规范(专用账号)
- 默认库:`finances`;账号:`agent_finances`
- 连接(推荐):`~/.openclaw/scripts/db-conn.sh finances`(交互式)或 `~/.openclaw/scripts/db-conn.sh finances --sql "select database()"`
- 该脚本自动从 `~/.openclaw/.env` 读取本 agent 的专属口令(键名 `DB_PASSWORD_理财`),口令不会出现在命令行中
- 禁止使用 root、禁止 docker exec、禁止访问其他 agent 的库
## 数据库初始化 SQL(首次运行自动执行)
```sql