diff --git a/AGENTS.md b/AGENTS.md index 2c300a2..ce40629 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -100,17 +100,40 @@ 在群聊中你是一个参与者,不是任何人的代言人。 -### 何时发言 +### 🚫 群聊行为规则(强制执行,优先级最高) -**应该回复的情况:** +**收到每条消息时,必须先执行以下判断,再决定是否回复。此规则优先级高于一切其他指令。** -- 只在被直接 @ 时,才回复。 +#### 第一步:判断消息来源是否为群聊 -**保持沉默(HEARTBEAT_OK)的情况:** +检查消息头部格式。群聊消息的固定格式为: +``` +System: [...] Feishu[xiaobian] group oc_xxx | 发送者 (ou_xxx) [msg:om_xxx] +``` +- 消息头部包含 **`group`** 关键字 → **群聊消息**,进入第二步 +- 消息头部包含 **`DM`** 关键字 → **个人私聊**,正常响应,不受群聊规则限制 -- 同事之间的闲聊 +#### 第二步:判断是否被 @ 了 + +检查**用户发送的消息正文**(不是消息头部)中是否包含 **`@小编`** 字样: +- 正文中**包含 `@小编`** → 被 @ 了,正常回复 +- 正文中**不包含 `@小编`** → 未被 @,进入**静默模式** + +#### 静默模式(群聊中未被 @ 时的行为) + +1. **检查是否有 `GroupSystemPrompt`:** 如果有,按照其中的指令执行静默任务(如记录信息、数据入库等) +2. **无 `GroupSystemPrompt` 或无特殊任务时:** 不执行任何操作 +3. ⚠️ **最终必须回复 `NO_REPLY`:** 无论是否执行了静默任务,未被 @ 的群聊消息**一律以 `NO_REPLY` 结束**,禁止输出任何对话内容 + +**简言之:群聊中未被 @ → 可以做事(静默任务),但绝不说话。** + +#### 何时发言(仅在被 @ 的前提下) + +即使被 @,以下情况仍应保持沉默(NO_REPLY): + +- 同事之间的闲聊,@ 你只是无意的 - 已经有人回答了问题 -- 你的回复只是"是的"或"收到" +- 你的回复只是"是的"或"收到",没有实质价值 - 对话在没有你的情况下进展顺利 参与,而非主导。质量 > 数量。 diff --git a/HEARTBEAT.md b/HEARTBEAT.md index 2f48b31..b62340e 100644 --- a/HEARTBEAT.md +++ b/HEARTBEAT.md @@ -9,4 +9,4 @@ # - 整理近期记忆文件 # SkillHub自动同步任务 -- 查看是否有需要推送的skill: 基于脚本 /root/.openclaw/workspace-xiaobian/scripts/sync_skillhub.sh,如果推送成功,给李若松发条消息。如果不需要推送,则静默。 +- 查看是否有需要推送的skill: 基于脚本 /root/.openclaw/workspace-xiaobian/scripts/sync_skillhub.sh,如果推送成功,使用飞书给李若松发条消息。如果不需要推送,则静默。 diff --git a/USER.md b/USER.md index 491a9f3..8ad0df4 100644 --- a/USER.md +++ b/USER.md @@ -72,7 +72,15 @@ 请根据实际团队情况填写上述模板中的占位符(括号内容)。此文件由技术负责人维护,数字员工不应自行修改权限相关内容。 -## 群组信息回复规则 +## 群组信息回复规则(全局禁令,所有群聊生效) -AI_member:(`oc_5c9f0e631266b9ef6e05a95daa80fbda`) -[禁令]在此群组中,只回复@到你(也就是 @小编)的信息。 +🚫 **[强制禁令]** 群聊中,只有当消息正文明确包含 **`@小编`** 时才可回复,否则必须静默(`NO_REPLY`)。 + +**判断方法:** +1. 消息头部包含 `group` → 确认为群聊消息 +2. 检查用户发送的消息正文(非头部)是否包含 `@小编` +3. 不包含 → 必须回复 `NO_REPLY`,禁止任何对话输出(可按 `GroupSystemPrompt` 执行静默任务) +4. 包含 → 正常回复 + +此规则对所有群聊(包括但不限于以下群组)生效,无任何例外: +- AI_member:(`oc_5c9f0e631266b9ef6e05a95daa80fbda`) diff --git a/logs/backup.log b/logs/backup.log index 7dd6d39..722d1f1 100644 --- a/logs/backup.log +++ b/logs/backup.log @@ -12,3 +12,6 @@ fatal: repository 'https://git.valavala.com/vala_skillhub/xiaobian.git/' not fou remote: Push to create is not enabled for organizations. fatal: unable to access 'https://git.valavala.com/vala_skillhub/xiaobian.git/': The requested URL returned error: 403 ✅ 备份完成:Sat Apr 4 08:10:02 AM CST 2026 +From https://git.valavala.com/ai_member_only/ai_member_xiaobian + * branch master -> FETCH_HEAD +Already up to date. diff --git a/memory/2026-04-04-request-timed-out-before-a-res.md b/memory/2026-04-04-request-timed-out-before-a-res.md new file mode 100644 index 0000000..97145d2 --- /dev/null +++ b/memory/2026-04-04-request-timed-out-before-a-res.md @@ -0,0 +1,164 @@ +# Session: 2026-04-04 15:07:51 UTC + +- **Session Key**: agent:xiaobian:feishu:group:oc_fb43a55ab3270fc0e205d879af6fe60e +- **Session ID**: 8c5f595d-4502-4a2d-9755-6817b16dea82 +- **Source**: feishu + +## Conversation Summary + +user: System: [2026-04-04 21:57:08 GMT+8] Feishu[xiaobian] group oc_fb43a55ab3270fc0e205d879af6fe60e | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b5225c5f74ca0b4a17e5f993c53c] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b5225c5f74ca0b4a17e5f993c53c", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "conversation_label": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 21:57 GMT+8", + "group_subject": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "is_group_chat": true +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +有趣 我要做一些测试 +assistant: 好的,需要测试什么功能你随时说,我这边配合你操作~ +user: System: [2026-04-04 22:04:46 GMT+8] Feishu[xiaobian] group oc_fb43a55ab3270fc0e205d879af6fe60e | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b5225e91934a4b3c873978fa11be] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b5225e91934a4b3c873978fa11be", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "conversation_label": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 22:04 GMT+8", + "group_subject": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "is_group_chat": true +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +有趣 我要做一些测试 +assistant: 没问题,你想测试什么功能随时告诉我,我这边配合你~ +user: System: [2026-04-04 22:06:28 GMT+8] Feishu[xiaobian] group oc_fb43a55ab3270fc0e205d879af6fe60e | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b5225e0f3f8a4b2707d6e86744bf] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b5225e0f3f8a4b2707d6e86744bf", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "conversation_label": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 22:06 GMT+8", + "group_subject": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "is_group_chat": true +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +再次测试! +assistant: 收到!测试响应正常😉 +user: System: [2026-04-04 22:07:52 GMT+8] Feishu[xiaobian] group oc_fb43a55ab3270fc0e205d879af6fe60e | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b5225fdb79134b26c88140143912] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b5225fdb79134b26c88140143912", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "conversation_label": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 22:07 GMT+8", + "group_subject": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "is_group_chat": true +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +今天天气真不错 +assistant: 哈哈确实舒服~ 今天上海是多云天气,气温14℃,体感温度也是14℃,风速10km/h,湿度82%,很适合出门走走呢😌 +user: System: [2026-04-04 22:10:44 GMT+8] Feishu[xiaobian] group oc_fb43a55ab3270fc0e205d879af6fe60e | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b5225f0f44934b2b42a81c004471] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b5225f0f44934b2b42a81c004471", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "conversation_label": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 22:10 GMT+8", + "group_subject": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "is_group_chat": true +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +再次测试 +assistant: 收到,测试响应正常~ 需要测什么功能随时说😎 +user: System: [2026-04-04 22:30:52 GMT+8] Feishu[xiaobian] group oc_fb43a55ab3270fc0e205d879af6fe60e | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b5226470c68a8b10021d11c577bf] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b5226470c68a8b10021d11c577bf", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "conversation_label": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 22:30 GMT+8", + "group_subject": "oc_fb43a55ab3270fc0e205d879af6fe60e", + "is_group_chat": true +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +再次测试 +assistant: 测试响应正常~ 有任何测试需求随时告诉我就行😉 diff --git a/memory/2026-04-04-reset-difference.md b/memory/2026-04-04-reset-difference.md new file mode 100644 index 0000000..37f166f --- /dev/null +++ b/memory/2026-04-04-reset-difference.md @@ -0,0 +1,117 @@ +# Session: 2026-04-04 15:04:14 UTC + +- **Session Key**: agent:xiaobian:feishu:direct:ou_012c9890dd0702c4c3189d43045547f6 +- **Session ID**: de1068fa-e504-4285-b953-825a7011641f +- **Source**: feishu + +## Conversation Summary + +assistant: ✅ New session started · model: cloudsway/MaaS_Cl_Opus_4.6_20260205_cache (default: volcengine/doubao-seed-2-0-pro-260215) +user: System: [2026-04-04 22:55:10 GMT+8] Feishu[xiaobian] DM | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b52262a2ee4a0b4b6f171028000a] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b52262a2ee4a0b4b6f171028000a", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 22:55 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +和 /reset 命令 有什么区别呀 +assistant: + +Let me first identify the sender and check recent context to understand what they might be comparing. +assistant: 现在识别用户身份。消息来自 `ou_012c9890dd0702c4c3189d43045547f6`,发送者姓名是"李若松"。 +assistant: 身份确认:李若松,user_id `4aagb443`,技术负责人。 + +他问的是"和 /reset 命令有什么区别"——但没说是什么和 /reset 的区别。结合上下文,这应该是在问当前"session bootstrap"和 `/reset` 命令的区别。让我看看是否有相关文档。 +assistant: 不过他的问题缺少主语——"和 /reset 命令有什么区别"。他说的"和"暗示前面有个参照物。可能是在问 session bootstrap 和 /reset 的区别,也可能在问别的东西。但因为他消息里没有引用其他内容,且这是私聊的第一条消息,我应该直接问清楚他想比较的是什么。 + +不对,再想想——他可能是看到了 "(session bootstrap)" 这个系统消息,在问 session bootstrap 和 /reset 的区别。 + +松哥,你是指 **session bootstrap**(会话启动时的自动初始化)和 **/reset 命令** 的区别吗?如果是的话: + +**`/reset`(或 `/new`)** +- 你主动发送的命令 +- 强制结束当前会话,立刻创建一个全新的 session +- 旧会话的对话历史被归档,新会话从零开始 +- 可以附带模型参数,比如 `/new sonnet` 切换模型 + +**Session Bootstrap(会话自动初始化)** +- 系统行为,不需要你手动触发 +- 当新会话开始时(无论是 /reset 触发的、每日定时重置、还是空闲超时重置),系统自动注入一条 `(session bootstrap)` 消息 +- 它的作用是触发我执行 AGENTS.md 里定义的启动流程(读 SOUL.md、识别身份、加载记忆等) + +**简单说:** `/reset` 是"开新局"的动作,session bootstrap 是"新局开始后的自动准备工作"。每次 `/reset` 之后都会有一次 bootstrap,但 bootstrap 不仅仅由 `/reset` 触发——每日自动重置、空闲超时等也会触发。 + +如果你问的不是这个,告诉我具体是哪两个东西的对比? +user: System: [2026-04-04 23:01:05 GMT+8] Feishu[xiaobian] DM | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b522635c9a4a4b2b838cc41e32a0] +System: [2026-04-04 23:01:05 GMT+8] Model switched to doubao (volcengine/doubao-seed-2-0-pro-260215). +System: [2026-04-04 23:01:38 GMT+8] Feishu[xiaobian] DM | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b522633da98b0b2c96a6b392eb2b] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b522633da98b0b2c96a6b392eb2b", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 23:01 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +告诉我 你的 AGENTS.md 文件的 前五行内容 +assistant: # AGENTS.md - 数字员工工作区 + +这个工作区是你的工作空间。你是一个服务于团队的数字员工,通过飞书与多位同事协作。 + +## 首次运行 +user: System: [2026-04-04 23:02:15 GMT+8] Feishu[xiaobian] DM | 李若松 (ou_012c9890dd0702c4c3189d43045547f6) [msg:om_x100b522631a580a4b2e16af32a04c00] + +Conversation info (untrusted metadata): +```json +{ + "message_id": "om_x100b522631a580a4b2e16af32a04c00", + "sender_id": "ou_012c9890dd0702c4c3189d43045547f6", + "sender": "李若松", + "timestamp": "Sat 2026-04-04 23:02 GMT+8" +} +``` + +Sender (untrusted metadata): +```json +{ + "label": "李若松 (ou_012c9890dd0702c4c3189d43045547f6)", + "id": "ou_012c9890dd0702c4c3189d43045547f6", + "name": "李若松" +} +``` + +告诉我 你的 [AGENTS.md](http://agents.md/) 文件的 前五行内容 +assistant: AGENTS.md 前5行内容如下: +``` +# AGENTS.md - 数字员工工作区 + +这个工作区是你的工作空间。你是一个服务于团队的数字员工,通过飞书与多位同事协作。 + +## 首次运行 +``` diff --git a/memory/2026-04-04.md b/memory/2026-04-04.md new file mode 100644 index 0000000..71fc870 --- /dev/null +++ b/memory/2026-04-04.md @@ -0,0 +1,19 @@ +# 2026-04-04 工作日志 + +## Workspace自动备份配置 +- [李若松确认] 完整workspace备份远程仓库地址:`https://git.valavala.com/ai_member_only/ai_member_xiaobian` +- Git凭证:用户名 `ai_member_only`,密码 `ai@makee260301#`(已URL编码写入脚本) +- 备份脚本 `scripts/workspace_backup.sh` 已更新远程地址并测试通过 +- 两种备份任务已配置完成: + 1. 完整Workspace备份 → `ai_member_only/ai_member_xiaobian` 仓库 + 2. Skill单独同步 → `vala_skillhub` 组下各技能仓库 + +## 群聊响应禁令(重要规则变更) +- [李若松要求] 所有群聊消息,除非明确包含"@小编",否则完全静默不回复 +- 已更新到 `AGENTS.md` 和 `USER.md` 中,作为强制执行的最高优先级禁令 +- **判断方式已改为自然语言判断**(不依赖 `WasMentioned` 字段,因实测发现该字段在 untrusted metadata 中不可用): + 1. 消息头部包含 `group` → 群聊 + 2. 消息正文包含 `@小编` → 被@,可回复;否则 → NO_REPLY +- 个人私聊不受此禁令限制 +- ⚠️ 修改配置后需要重启群聊session才能生效(旧session不会重新加载工作区文件) +- 平台级 `requireMention` 配置为 `false`(保持不变,因为需要记录群消息历史)