83439ee623
- 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 白名单,避免数据/技能/媒体进入版本库
46 lines
3.1 KiB
Markdown
46 lines
3.1 KiB
Markdown
# TOOLS.md —— 本地记录
|
||
|
||
技能文件(Skills)定义的是工具**如何工作**。而这个文件是为**你的具体情况**准备的——那些你个人环境独有的信息。
|
||
|
||
## 📢 钉钉推送统一规范(重要,所有自动提醒必须遵守)
|
||
|
||
**杨轩的所有主动推送/提醒都走 DingTalk(钉钉)。统一使用 OpenClaw 的 delivery 机制发送,禁止在任务命令里手动调用 `openclaw message send`。**
|
||
|
||
### 标准格式(创建推送定时任务时照抄)
|
||
|
||
```
|
||
openclaw cron add <任务名> \
|
||
--cron "<表达式>" --tz Asia/Shanghai \
|
||
--session isolated --announce \
|
||
--channel dingtalk-connector --to 0464031658857345 \
|
||
--wake now \
|
||
--agent main \
|
||
--command 'echo "提醒文案"'
|
||
```
|
||
|
||
要点:
|
||
1. **投递交给 delivery**:`--announce --channel dingtalk-connector --to 0464031658857345`。任务的 command payload **只负责输出文案**(用 `echo "..."`),不要在里面发消息。
|
||
2. **统一 channel 名**:`dingtalk-connector`(这是 OpenClaw 内部路由用的 channel 名,投递用这个)。
|
||
3. **指定 owner**:一律 `--agent main`(多 agent 环境下无 owner 任务会导致调度器卡死,见下面「调度器红线」)。
|
||
4. **时区**:定时用 `--tz Asia/Shanghai`。
|
||
5. payload 是 command 用 `--command`/`--command-argv`,是 agent 对话用 `--message`(但 command 简单提醒优先用 `echo`)。
|
||
|
||
### ❌ 禁止的做法(曾经的坑)
|
||
- 不要在 command 里跑 `openclaw message send --channel dingtalk-connector ...`。CLI 的 `message send` 不认识 `dingtalk-connector`(CLI 内置频道枚举只有 telegram/whatsapp/... 等,无 DingTalk 插件名),会 exit 1 失败。(曾导致 dinner-21 提醒单独坏掉,2026-09-01 修复为 echo+delivery 后与其它一致。)
|
||
- 不要建无 owner(不指定 `--agent`)的定时任务。
|
||
|
||
### 校验口径
|
||
- 判断一个推送任务健不健康:看它的 `payload` 应是 `echo "文案"` 之类,且 `delivery.mode=announce`、`delivery.channel=dingtalk-connector`、`delivery.to=0464031658857345`。整库搜 `message send` 应为 0 结果。
|
||
|
||
## ⌛ Cron 调度器红线
|
||
|
||
- **多 agent 环境下,无 owner(agent-less)的定时任务会导致 cron reconcile 报 `Agent-less cron job has no resolvable owner`,调度器 nextWake 锁死在一个过期时间,阻塞后续所有任务。**
|
||
- 已通过 `agents.defaults.systemAgent.agentId=main` + 各任务补 `--agent main` 修复(2026-09-01,提交 `940c8a6`)。
|
||
- **以后新建任何 cron 任务都必须带 `--agent main`**(或明确归属的 agent)。
|
||
- 排查命令:`openclaw cron status`(看 `nextWakeAtMs` 是否停滞)、`openclaw cron get <id>`、`openclaw cron edit <id> --agent main`。
|
||
|
||
## 📋 环境提示
|
||
|
||
- 主 agent 工作区没有单独 TOOLS.md;本文件是主工作区(main agent)的本地记录。
|
||
- 钉钉插件(`@dingtalk-real-ai/dingtalk-connector` v0.8.23)运行时 `__default__` account 曾出现 `'./plugin-sdk/channel-runtime' is not defined` 的启动报错(疑似与 OpenClaw 2026.8.1 不兼容);但实际消息收发(stream)仍通。若钉钉通道异常,优先排查此插件兼容性。
|