Files
openclaw-config/workspace/MEMORY.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

168 lines
12 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.
# 基础工作规范(适用于所有智能助手)
## 🎯 核心原则
- 安全第一:禁止执行未经确认的危险操作(rm -rf、格式化等)
- 数据优先:修改文件前先查看完整内容
- 可追溯:所有重要操作记录到日志
## 🌐 语言要求
- **所有智能助手的交互一律使用中文**,包括下载助手、前端、Java后端、仓库管理员、主助手
- 技术术语可保留原文(API、CSS、JSON 等),但解释、对话、回复用中文
## 📝 记忆使用规则
1. 想记住的东西→写入文件(「脑记」不持久)
2. 主会话加载 MEMORY.md,群聊/子助手不加载
3. 每日日志自动写入 memory/YYYY-MM-DD.md
## 🔧 通用工作流程
1. 确认需求 → 2. 拆解步骤 → 3. 执行 → 4. 验证 → 5. 记录
## 🚫 红线
- 不向外泄露私有数据
- 不擅自发送邮件/公开帖子
- 不确定时先询问
## 🪪 国家网络身份认证
- 杨轩已申领网络身份认证凭证,网号(网络身份认证凭证号):**F32F12T36Q**2026-08-13 申领)
- 用途:可使用该网号登录「国家网络身份认证APP」
## 🐬 本地数据库环境(Docker MySQL
**「本地数据库」「本地 MySQL」= 本机 Docker 容器 MySQL**(非远程、非 WSL),统一环境定义:
- **连接**`127.0.0.1:3306`user=root(密码在 db-config.json
- **本质**:跑在本机 Docker 里的 MySQL 容器(`docker ps` 可见,端口映射 3306
- **操作方式**:一律走 `db-query` skill`python3 skills/db-query/scripts/db_query.py --database "<库名>" --query "<SQL>"`),凭据不直连
- **库清单**db-config.json「name」):tab / 按摩放松(wellness) / 卷儿记账(juaner) / 理财财务(finances) / 健身健康(fitness) / 后端开发(main) / 简历管理(resume) / 旅行规划(travel)
- **对照**:远程库是 `101.34.227.188:3306` 那几个 VPS 主库(dmp_serp/dmp_smdm/dmp_smes),不是本地
### 本地库 ↔ Agent 映射(同一 Docker MySQL 实例)
> 所有本地库都在**同一个** 127.0.0.1:3306 容器里,不是每个库一个实例。每个库都有归属 agent(下表);db-query「name」列是连库时用的描述名。
| 数据库(库名) | 归属 agent | 用途 | db-query「name」 |
|------|-----------|------|------|
| `tab` | **tab** | 引擎/站点/站点类型 | tab |
| `wellness` | **wellness** | 按摩放松记录 | 按摩放松 |
| `finances` | **finances** | 家庭理财财务 | 理财财务 |
| `fitness` | **fitness** | 健身健康 | 健身健康 |
| `resume` | **resume** | 简历管理 | 简历管理 |
| `travel` | **travel** | 旅行规划 | 旅行规划 |
| `juaner` | **juaner** | 卷儿记账(todos/transactions | 卷儿记账 |
| `main` | **main** | 主库(conversation_notes/tasks/user_preferences | 后端开发 |
> 注:`juaner` agent 是杨锦书陪伴助手,但它同时管理 `juaner` 记账库;`main` agent 是主助手,其 `main` 库即后端应用主库。
> 触发词:用户一提「本地数据库 / 本地 MySQL / Docker 里的库」→ 默认指上述 127.0.0.1:3306 的 Docker 实例。拿不准就按这个核对。
## 🔧 搜索引擎配置
## 🔌 WSL SSH 配置
- SSH 端口:**2222**(非默认 22
- socket 激活已禁用,由 sshd 直接管理
- 宿主机端口转发:`netsh interface portproxy``localhost:2222 → WSL IP:2222`
- 转发脚本:`scripts/setup-wsl-portproxy.ps1`WSL 重启后需重新运行)
- 认证:公钥(Windows id_rsa.pub → WSL authorized_keys+ 密码备用
- 连接:`ssh yangxuan@localhost -p 2222`
## 🔧 搜索引擎配置
- 自建实例:`https://search.climbcube.cn/`
- 插件启用状态:已启用
- 搜索提供方:自建搜索引擎
- 主智能助手会自动使用搜索引擎
## 📹 固定提醒
- **工作日 20:00** — 提醒杨轩和杨锦书视频,督促杨锦书踢水
## 🎂 家庭成员生日提醒(每年,统一规则)
- **投递红线**:所有钉钉推送/提醒统一使用 delivery 机制(`--announce --channel dingtalk-connector --to 0464031658857345`);**禁止在任务命令里手动调 `openclaw message send`**CLI 不认识 dingtalk-connector,曾致 dinner-21 单独坏掉)。完整规范见 `workspace/TOOLS.md`「📢 钉钉推送统一规范」;新建 cron 任务一律 `--agent main`
- **提醒规则**:每年在公历生日**前7天**、**前3天**、**当天**各提醒一次(共三次),通过钉钉当前对话发给杨轩
- **换算**:农历生日每年用 lunar_python 换算为公历日期(阳历生日固定);再为每年设三个一次性 cronisolated + announce 钉钉),运行后自动删除
- **投递参数(必须)**`--session isolated --announce --channel dingtalk-connector --to 0464031658857345 --wake now --delete-after-run`
### 成员生日库(定义见 birthday-reminder skill
| 人物 | 生日类型 | 出生日期 | 关系 |
|------|---------|---------|------|
| 汪礼平 | 农历 | 1968年6月20日 | - |
| 杨安顺 | 农历 | 1968年8月18日 | - |
| 王芳 | 农历 | 1993年10月7日 | - |
| 杨锦书 | 阳历 | 2021年11月10日 | 卷儿,阳历固定 |
### 已设置的提醒年份
- **2026年**:杨安顺=9/28(前7天9/21、前3天9/25、当天9/28)✅;杨锦书=11/1011/3、11/7、11/10)✅;王芳=11/1511/8、11/12、11/15)✅
- **2027年**:汪礼平=7/23(前7天7/16、前3天7/20、当天7/23)✅;杨安顺=9/189/11、9/15、9/18)✅;杨锦书=11/1011/3、11/7、11/10)✅;王芳=11/410/28、11/1、11/4)✅
- 汪礼平2026年=8/2(当年已过);杨安顺2026年=9/28、王芳2026年=11/15、杨锦书2026年=11/10 均已设
## 🐳 Docker / 代理
- 系统代理:`/etc/systemd/system/docker.service.d/proxy.conf``HTTP_PROXY=http://172.25.208.1:7443`
- 镜像站:`docker.1ms.run`, `docker.xuanyuan.me`, `hub.rat.dev`
- **红线**:不要擅自改 Docker 代理配置或重启 Docker。代理没开就通知杨轩。
## 🤖 Agent 列表
- 共 11 个 agents,职责如下:
| Agent | 职责 |
|-------|------|
| **main** | 主助手:统一调度、记忆管理、日常对话、任务分发;其 `main` 库(后端开发,conversation_notes/tasks/user_preferences)归 main 管理 |
| **resume** | 简历助手:简历评审优化、面试准备、职业建议;**同时负责周报生成**(维云智造G5周报 → 存入钉邮草稿箱,带 weekly-report-g5 skill |
| **travel** | 旅途助手:行程规划、目的地推荐、交通住宿、美食签证 |
| **fitness** | 健身 🏋️:健康减脂教练、饮食记录分析、运动跟踪、平台期突破 |
| **finances** | 理财 💰:家庭财务管理、收支分析、资产负债诊断、财务目标跟踪 |
| **sql** | SQL 🗄️:数据库操作、SQL 编写调试、查询优化、Schema 管理 |
| **note** | 笔记 📝:管理/归档 /home/yangxuan/seafile/笔记(Obsidian 库),整理对话产生的知识文档 |
| **juaner** | 卷儿 👧:杨锦书专属陪伴助手;同时管理 `juaner` 记账库(todos/transactions |
| **pbs** | PBS备份 💾:Proxmox Backup Server (pbs01) 备份管理,中文交互(Tailscale 100.115.195.195SSH 免密 root,见 workspace-pbs/AGENTS.md |
| **wellness** | 放松保健 💆:管理按摩放松记录(本地 MySQL wellness 库),查询/新增技师联系人(cc_contract)和放松记录(cc_contract_record)db-query「按摩放松」连接,见 workspace-wellness/skills/wellness |
| **tab** | 项目管理 🗄️:管理 tab 项目数据库(本地 MySQL tab 库),新增引擎/站点/站点类型(含去重)、启用禁用(status 切换),icon 自动取 favicondb-query「tab」连接,见 workspace-tab/skills/tab |
- config 见 `openclaw.json``agents.list`
- `subagents.allowAgents` 已设为 `["*"]`main 可 spawn 任意 agent
### 🤖 Agent 调度红线
⚠️ **见 AGENTS.md「红线」节**:对话中出现 agent 的 id 或 name 时,必须先判断是否应交由该 agent 处理。**不确定时,咨询杨轩,不猜测、不自行决定。**
### 📝 知识归档协作(note agent
- main 在对话中**识别「值得存档的知识」**(技术方案、问题排查、开发笔记等)→ **自动转发给 note agent 归档**
- 归档目标:`/home/yangxuan/seafile/笔记`Obsidian 库,seafile 云同步)
- 规则:**只归档新文档,不动存量**;同步交给 seafile 客户端自动处理
- 分类:004-工作/技术方案、问题/故障排查、002-笔记/通用知识、003-阅读/学习笔记等(详见 workspace-note/AGENTS.md
## 📅 心跳检查项(每30分钟)
- 检查邮箱紧急邮件
- 查看日历近期待办
- 维护记忆文件(整理→提炼→更新MEMORY.md)
## 🗄️ 3.14 主机(xuan-asus-nj)配置
- **地址**192.168.3.14
- **OpenClaw 目录**`/home/yangxuan/.openclaw/`
- **Gitea 用户**openclaw-314(密码同源码仓库管理员)
- **Git remotecloud**`https://gitea.climbcube.cn/yangxuan/openclaw-config.git`
- **Git 分支**`314`(已删除本地 `main`
- **自动提交**:每6小时,cron job `auto-commit-config`,仅推 cloud 314 分支
- **SSH**:免密登录(id_ed25519
## ⚙️ Cron 调度器 agent-less 故障(2026-09-01 修复)
**现象**:所有定时提醒(整点休息/吃饭/运动等)突然不触发。
**根因**:多个定时任务(工作提醒/auto-commit/吃饭/运动/购票/还贷等 command 任务)是 **agent-less 无 owner** 任务。多 agent 环境下 cron reconcile 报 `Agent-less cron job has no resolvable owner`,调度器 nextWake 锁死在一个过期时间,阻塞后续所有任务。
**修复**
- 在 openclaw.json `agents.defaults.systemAgent.agentId=main`(已提交 Gitea `940c8a6`
- 各无主 command 任务补 `--agent main`(工作提醒/吃饭/运动/购票/还贷/周一戴口罩/dinner-21/auto-commit
- 调度器随后解锁(nextWake 正常推进,如 11:00 等)
**排查命令**`openclaw cron status`(看 nextWakeAtMs 是否停滞)、`openclaw cron get <id>``openclaw cron edit <id> --agent main`
**注意**admin 环境 `openclaw cron list`/`automations list` 曾因 agent-less 任务报错,配置 systemAgent 后自动恢复。
## 🧹 Git 清理
- `/home/yangxuan/.openclaw/` 下仅主仓库一个 `.git`,子目录 `.git` 已全部删除
- workspace 子模块不再有独立 git
## 🕊️ 飞书渠道(2026-09-15 配置)<!-- project: gitea.climbcube.cn/yangxuan/openclaw-config -->
- **插件**:官方 `@openclaw/feishu`2026.8.1,装于 `~/.openclaw/npm/projects/`);旧的第三方扩展 `openclaw-lark` 已禁用(与 2026.8.1 不兼容,报 `./plugin-sdk not exported`
- **渠道配置**`channels.feishu` appId=`cli_aa2274de26b8c0db`(旧的 `cli_aa2a59f378b8c19b` 已弃用),appSecret 用 SecretRef `store/default:FEISHU_APP_SECRET`(旧 file provider `lark-secrets` 已弃用),`connectionMode=websocket`
- **路由**`bindings``feishu → main`(原绑 fitness,已改);`openclaw-weixin e48ace…→main``89623f…→juaner` 保持不变
- **DM**`dmPolicy=allowlist``allowFrom=["ou_28124d6721134f0e31d6122d30088418"]`(杨轩本人在新应用下的 open_id,已配对批准);`commands.ownerAllowFrom` 已设为该 open_id
- **机器人 open_id**`ou_85d8747d90179b421e595cb22090d6fb`DM chat_id`oc_8eecfa0e1cc185c1cb19b4f3950cbc52`
- **注意**:飞书 open_id 按应用隔离,换应用必须换白名单;`groupAllowFrom` 只能填群 ID`oc_…`),不能填用户 `ou_…`
- 日志里 `contact:contact.base:readonly` 类 99991672 报错被插件判为 stale 并忽略(仅影响发送者昵称解析)