From 0ece00cacede18a0aba81ed3b4c935d86779a568 Mon Sep 17 00:00:00 2001 From: xiaoban Date: Thu, 16 Apr 2026 08:00:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=80=BB=E7=BB=93=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=2020260416?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vala_skill_hashes | 2 +- AGENTS.md | 30 +++++++++ logs/backup.log | 10 +++ memory/2026-04-15-backup-script.md | 97 ++++++++++++++++++++++++++++++ memory/2026-04-15-cron-tasks.md | 48 +++++++++++++++ scripts/daily_summary.sh | 16 +++-- skills/cron-schedule/SKILL.md | 55 ----------------- tmp_daily_summary.md | 3 + 8 files changed, 201 insertions(+), 60 deletions(-) create mode 100644 memory/2026-04-15-backup-script.md create mode 100644 memory/2026-04-15-cron-tasks.md delete mode 100644 skills/cron-schedule/SKILL.md create mode 100644 tmp_daily_summary.md diff --git a/.vala_skill_hashes b/.vala_skill_hashes index f5d95a1..4182238 100644 --- a/.vala_skill_hashes +++ b/.vala_skill_hashes @@ -1,4 +1,3 @@ -cron-schedule 76a1450e7eb093079509657b0a741653ea6d29119317826e6f26d3e9caf580b0 feishu_send_file 93ecafd166240f204d8b9947f877a7f24232752d30c007e080af3b1a778bd8b6 feishu-wiki-access c7cca22bcf68c0e297d99859c114b1a4e469c35b8c143623742f3f9d2a841c09 find-skills fc331652faaa71746a3f63a6bd46ae57da7679c5081b03e84c930ed366493503 @@ -7,3 +6,4 @@ kids-english-script-production 3cb6929e4f5a43e7245adb79091e56ce4cc2ae77198dc795f lark_wiki_operate_as_bot 2a37701f568849f03eb46dd938baeda171380fe252b698ac8bda69caa19aea08 vala_git_workspace_backup 4cf352bec88fe84af065ba1ffcbb06647b77df0e01860faaf0bca9fd64b968ec study-analysis 3a379ec7cc0e25cc71d5b5b4a88c0da6cfef849cac08bb06d2c671b50748f39d +cron-schedule b1879fa59d60e3d99cea1138674f7abac84a4aecd32743b801d41bfd6ed7181d diff --git a/AGENTS.md b/AGENTS.md index 178bfba..922bae4 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -127,6 +127,34 @@ System: [...] Feishu[xiaobian] group oc_xxx | 发送者 (ou_xxx) [msg:om_xxx] 参与,而非主导。质量 > 数量。 +## 工作区目录规范(强制执行) + +工作区根目录只允许存在以下子目录和文件,**禁止在根目录下随意创建新的子目录或散落文件**: + +### 允许的子目录 + +| 目录 | 用途 | 说明 | +|------|------|------| +| `memory/` | 短期记忆 | 按天记录工作日志,格式 `YYYY-MM-DD.md` | +| `business_knowledge/` | 业务知识库 | **所有业务知识统一存放于此**,包括业务术语、数据表说明、SQL 模板、数据抽取脚本等 | +| `scripts/` | 脚本文件 | 所有 `.py`、`.sh`、`.sql` 等脚本文件必须放在此目录 | +| `output/` | 输出文件 | 所有生成的报表(`.xlsx`、`.csv`)、日志(`.log`)、导出文件等必须放在此目录 | +| `skills/` | 技能定义 | 个人技能目录 | +| `tmp/` | 临时文件 | 临时中间产物,可定期清理 | +| `backup/` | 归档备份 | 不再活跃使用的旧文件和目录 | + +### 允许的根目录文件 + +`AGENTS.md`、`SOUL.md`、`USER.md`、`MEMORY.md`、`TOOLS.md`、`IDENTITY.md`、`HEARTBEAT.md`、`BOOTSTRAP.md`、`secrets.env`、`.env`、`.gitignore` + +### 强制规则 + +1. **脚本文件** → 始终创建在 `scripts/` 目录下,绝不放在根目录 +2. **输出文件**(xlsx/csv/log/报表等)→ 始终创建在 `output/` 目录下,绝不放在根目录 +3. **业务知识** → 统一记录到 `business_knowledge/` 目录 +4. **新增子目录** → 禁止在根目录下随意创建新子目录。如有特殊需要,须经技术负责人确认 +5. **临时文件** → 使用 `tmp/`,用完即清 + ## 工具 Skills 提供你的工具。当你需要某个工具时,查看对应 `skills/` 目录下的 `SKILL.md`。在 `TOOLS.md` 中保存环境相关的备注(数据库连接、API 配置等)。敏感凭证统一存储在 `secrets.md` 中。 @@ -175,6 +203,8 @@ Skills 提供你的工具。当你需要某个工具时,查看对应 `skills/` - 任务需要与主会话历史隔离 - 一次性提醒 +定时任务技能: /root/.openclaw/skills/cron-schedule.vala + ### 记忆维护(在心跳期间) 定期利用心跳来: diff --git a/logs/backup.log b/logs/backup.log index 7b0d837..fa77190 100644 --- a/logs/backup.log +++ b/logs/backup.log @@ -52,3 +52,13 @@ To https://git.valavala.com/ai_member_only/ai_member_xiaoban 949ef1a..dc913c4 master -> master [2026-04-14 08:10:01] 工作区备份成功:自动备份 2026-04-14 08:10:01 [2026-04-15 08:10:01] 开始备份工作区... +[master 33589e8] 自动备份 2026-04-15 08:10:01 + 6 files changed, 176 insertions(+), 1 deletion(-) + create mode 100644 generate_excel.py + create mode 100644 user_1185_analysis.xlsx + create mode 100644 user_1185_study_analysis_report.xlsx +remote: . Processing 1 references +remote: Processed 1 references in total +To https://git.valavala.com/ai_member_only/ai_member_xiaoban + fb56173..33589e8 master -> master +[2026-04-15 08:10:01] 工作区备份成功:自动备份 2026-04-15 08:10:01 diff --git a/memory/2026-04-15-backup-script.md b/memory/2026-04-15-backup-script.md new file mode 100644 index 0000000..a317276 --- /dev/null +++ b/memory/2026-04-15-backup-script.md @@ -0,0 +1,97 @@ +# Session: 2026-04-15 10:56:37 UTC + +- **Session Key**: agent:xiaoban:feishu:direct:ou_d0474502fe89122e69d0e13123c7bb45 +- **Session ID**: 0e1ed435-1aad-40e6-8832-402ff83594c7 +- **Source**: feishu + +## Conversation Summary + +user: System: [2026-04-10 10:44:59 GMT+8] Feishu[xiaoban] DM | 李若松 (ou_d0474502fe89122e69d0e13123c7bb45) [msg:om_x100b52b20c698494b2158168649c63c] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b52b20c698494b2158168649c63c", + "sender_id": "ou_d0474502fe89122e69d0e13123c7bb45", + "sender": "李若松", + "timestamp": "Fri 2026-04-10 10:44 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_d0474502fe89122e69d0e13123c7bb45)", + "id": "ou_d0474502fe89122e69d0e13123c7bb45", + "name": "李若松" +} +``` + +你的工作区备份任务 是配置在什么地方的 +assistant: 📚 小斑工作区的备份任务配置如下: +### 1. 触发配置 +- 位置:root用户的crontab定时任务 +- 执行时间:每天 08:10 +### 2. 备份脚本 +- 路径:`/root/.openclaw/workspace-xiaoban/scripts/backup_workspace.sh` +- 逻辑:自动提交工作区所有变更(自动忽略`.gitignore`中配置的敏感文件如`secrets.md`),推送到远程私有仓库 `https://git.valavala.com/ai_member_only/ai_member_xiaoban` master分支 +### 3. 日志位置 +`/root/.openclaw/workspace-xiaoban/logs/backup.log` +user: System: [2026-04-10 10:45:59 GMT+8] Feishu[xiaoban] DM | 李若松 (ou_d0474502fe89122e69d0e13123c7bb45) [msg:om_x100b52b208a8a880b10fdabab635071] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b52b208a8a880b10fdabab635071", + "sender_id": "ou_d0474502fe89122e69d0e13123c7bb45", + "sender": "李若松", + "timestamp": "Fri 2026-04-10 10:45 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_d0474502fe89122e69d0e13123c7bb45)", + "id": "ou_d0474502fe89122e69d0e13123c7bb45", + "name": "李若松" +} +``` + +参考 /root/.openclaw/workspace-xiaoyan/scripts/backup_workspace.sh 修改你的 工作区备份脚本中 发送通知消息的部分 改为基于 user_id +assistant: ✅ 已完成备份脚本修改: +### 修改内容: +1. 参考xiaoyan的脚本逻辑,将通知部分改为基于user_id发送,接收人为李若松的租户user_id `4aagb443` +2. 新增日志输出到 `/root/.openclaw/workspace-xiaoban/logs/backup.log` +3. 新增备份成功/失败两种场景的飞书通知: + - 成功通知:附带仓库地址 + - 失败通知:提示日志位置 +4. 保持原有备份逻辑不变,仍推送至仓库 `https://git.valavala.com/ai_member_only/ai_member_xiaoban` + +你可以手动运行 `bash /root/.openclaw/workspace-xiaoban/scripts/backup_workspace.sh` 测试通知功能是否正常。 +user: System: [2026-04-10 10:48:12 GMT+8] Feishu[xiaoban] DM | 李若松 (ou_d0474502fe89122e69d0e13123c7bb45) [msg:om_x100b52b200776590b2cc38f38307919] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b52b200776590b2cc38f38307919", + "sender_id": "ou_d0474502fe89122e69d0e13123c7bb45", + "sender": "李若松", + "timestamp": "Fri 2026-04-10 10:48 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_d0474502fe89122e69d0e13123c7bb45)", + "id": "ou_d0474502fe89122e69d0e13123c7bb45", + "name": "李若松" +} +``` + +你替我运行一次看看 +assistant: ✅ 备份脚本执行完成: +- 成功提交了2个文件的变更(备份脚本本身修改 + 本次备份记录) +- 已推送至远程仓库 +- 备份成功通知已发送到你的飞书,请查收~ diff --git a/memory/2026-04-15-cron-tasks.md b/memory/2026-04-15-cron-tasks.md new file mode 100644 index 0000000..8f6408f --- /dev/null +++ b/memory/2026-04-15-cron-tasks.md @@ -0,0 +1,48 @@ +# Session: 2026-04-15 11:05:31 UTC + +- **Session Key**: agent:xiaoban:feishu:direct:ou_d0474502fe89122e69d0e13123c7bb45 +- **Session ID**: 6f771800-2079-4692-a80e-7640cf02f0ea +- **Source**: feishu + +## Conversation Summary + +assistant: ✅ New session started · model: volcengine/doubao-seed-2-0-pro-260215 +user: System: [2026-04-15 18:56:37 GMT+8] Feishu[xiaoban] DM | 李若松 (ou_d0474502fe89122e69d0e13123c7bb45) [msg:om_x100b52c2a08dc884b2d600a717365cc] + +A new session was started via /new or /reset. Run your Session Startup sequence - read the required files before responding to the user. Then greet the user in your configured persona, if one is provided. Be yourself - use your defined voice, mannerisms, and mood. Keep it to 1-3 sentences and ask what they want to do. If the runtime model differs from default_model in the system prompt, mention the default model. Do not mention internal steps, files, tools, or reasoning. +Current time: Wednesday, April 15th, 2026 — 6:56 PM (Asia/Shanghai) / 2026-04-15 10:56 UTC +assistant: Cris好~ 我是小斑📚,需要我帮你处理什么工作呀? +user: System: [2026-04-15 18:56:59 GMT+8] Feishu[xiaoban] DM | 李若松 (ou_d0474502fe89122e69d0e13123c7bb45) [msg:om_x100b52c2a1a7bca0b4cce3e91102313] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b52c2a1a7bca0b4cce3e91102313", + "sender_id": "ou_d0474502fe89122e69d0e13123c7bb45", + "sender": "李若松", + "timestamp": "Wed 2026-04-15 18:56 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_d0474502fe89122e69d0e13123c7bb45)", + "id": "ou_d0474502fe89122e69d0e13123c7bb45", + "name": "李若松" +} +``` + +查看你配置的全部定时任务 +assistant: ### 小斑当前配置的全部定时任务: +#### 系统crontab任务(共2个): +1. **每日汇总任务**:每天 08:00 执行 + - 脚本路径:`/root/.openclaw/workspace-xiaoban/scripts/daily_summary.sh` + - 日志路径:`/var/log/xiaoban_daily_summary.log` + +2. **工作区备份任务**:每天 08:10 执行 + - 脚本路径:`/root/.openclaw/workspace-xiaoban/scripts/backup_workspace.sh` + - 日志路径:`/root/.openclaw/workspace-xiaoban/logs/backup.log` + +#### OpenClaw 内置定时任务: +暂无配置的定时任务。 diff --git a/scripts/daily_summary.sh b/scripts/daily_summary.sh index 80eb0c1..a2c6da9 100755 --- a/scripts/daily_summary.sh +++ b/scripts/daily_summary.sh @@ -38,11 +38,19 @@ curl -X POST "https://open.feishu.cn/open-apis/docx/v1/documents/Tn23wQkUQilduAk ] }" -# 4. 发送通知给Cris -/home/ubuntu/.nvm/versions/node/v24.14.0/bin/openclaw message send --channel feishu --target user:ou_d0474502fe89122e69d0e13123c7bb45 --message "✅ 每日8点总结任务已完成: -$(cat $WORKSPACE/tmp_daily_summary.md) +# 4. 发送通知给李若松(使用 user_id + curl) +APP_ID=$(jq -r '.apps[0].appId' /root/.openclaw/credentials/xiaoban/config.json) +APP_SECRET=$(jq -r '.apps[0].appSecret' /root/.openclaw/credentials/xiaoban/config.json) +TOKEN=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \ + -H "Content-Type: application/json" \ + -d "{\"app_id\":\"$APP_ID\",\"app_secret\":\"$APP_SECRET\"}" \ + | jq -r '.tenant_access_token') -飞书文档已更新,git仓库已同步。" +SUMMARY_TEXT=$(cat $WORKSPACE/tmp_daily_summary.md | tr '\n' ' ' | sed 's/"/\\"/g') +curl -s -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=user_id" \ + -H "Authorization: Bearer $TOKEN" \ + -H "Content-Type: application/json" \ + -d "{\"receive_id\":\"4aagb443\",\"msg_type\":\"text\",\"content\":\"{\\\"text\\\":\\\"✅ 每日8点总结任务已完成,飞书文档已更新,git仓库已同步。\\\"}\"}" > /dev/null 2>&1 # 清理临时文件 rm $WORKSPACE/tmp_daily_summary.md diff --git a/skills/cron-schedule/SKILL.md b/skills/cron-schedule/SKILL.md deleted file mode 100644 index d748850..0000000 --- a/skills/cron-schedule/SKILL.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -name: cron-schedule -description: 定时任务/提醒设置,支持一次性定时提醒和周期性cron任务。激活当用户提到"提醒我"、"定时"、"cron任务"、"多久之后通知我"等相关需求时。 ---- - -# 定时任务设置Skill -用于快速创建定时提醒、周期性自动化任务。 - -## 激活场景 -当用户提出以下需求时自动触发使用该Skill: -- "XX分钟/小时/天后提醒我XX" -- "每天/每周X XX点提醒我XX" -- "设置定时任务" -- "创建cron任务" -- "帮我加个提醒" - -## 使用方法 -### 1. 一次性定时提醒(执行后自动删除) -**参数规则:** -- 延迟时间:支持"30分钟"、"2小时"、"1天"等自然语言时间 -- 提醒内容:需要通知用户的具体消息 - -**示例:** -用户需求:"30分钟后提醒我开会" -执行命令: -```bash -openclaw cron add --at +30m --name "30分钟后开会提醒" --message "⏰ 提醒:时间到了,该去开会啦!" --announce --channel feishu --account xiaoban --to ou_d0474502fe89122e69d0e13123c7bb45 --tz Asia/Shanghai --delete-after-run -``` - -### 2. 周期性定时任务(重复执行) -**参数规则:** -- cron表达式:标准cron格式 `分 时 日 月 周`,例如`0 8 * * *`表示每天8点 -- 任务名称:便于识别的任务标识 -- 执行内容/提醒消息:需要执行的操作或通知内容 - -**示例:** -用户需求:"每天早上8点提醒我备份数据" -执行命令: -```bash -openclaw cron add --cron "0 8 * * *" --name "每日8点数据备份提醒" --message "⏰ 每日提醒:请执行当日数据备份操作~" --announce --channel feishu --account xiaoban --to ou_d0474502fe89122e69d0e13123c7bb45 --tz Asia/Shanghai -``` - -## 强制规则(必须遵守) -1. 所有定时任务默认投递到用户飞书账号 `ou_d0474502fe89122e69d0e13123c7bb45`,不允许投递到其他地址 -2. 时区强制指定为`Asia/Shanghai`,避免时间计算错误 -3. 飞书投递必须加`--account xiaoban`参数,指定使用xiaoban bot发送,禁止使用默认default bot -4. 一次性提醒必须加`--delete-after-run`参数,执行后自动清理过期任务 -5. 创建任务完成后需要将任务ID返回给用户,方便后续管理 -6. 不允许创建执行破坏性操作的定时任务 - -## 任务管理常用命令 -- 查看所有定时任务:`openclaw cron list` -- 删除指定任务:`openclaw cron rm <任务ID>` -- 手动执行验证任务:`openclaw cron run <任务ID>` -- 查看任务执行状态:`openclaw cron status <任务ID>` \ No newline at end of file diff --git a/tmp_daily_summary.md b/tmp_daily_summary.md new file mode 100644 index 0000000..9192ba0 --- /dev/null +++ b/tmp_daily_summary.md @@ -0,0 +1,3 @@ +=== 每日总结 20260416 === +## 昨日关键进展 +无昨日记忆记录