auto backup 2026-04-03 08:30:01
This commit is contained in:
parent
4a9bca3b8a
commit
0fdb3f0cc3
@ -1,2 +1,4 @@
|
|||||||
logs e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
logs e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
|
||||||
vala_git_workspace_backup 94cce7672d86d96733e0dad32c556c275594ffc423b4a4a5904de33bb5458ea5
|
vala_git_workspace_backup 94cce7672d86d96733e0dad32c556c275594ffc423b4a4a5904de33bb5458ea5
|
||||||
|
lark_wiki_operate_as_bot.vala f84c308bcb69280520dadf9458177d9c4af192d60cf409528bd65e13f3e67e0a
|
||||||
|
user-feedback-collector e02a2d4ee3914c393c1c683779c40787128b9163eecccf175531afc19b6d21a9
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
# HEARTBEAT.md
|
# HEARTBEAT.md
|
||||||
|
|
||||||
向 李若松 | `ou_7c623036b45fe81f372b032da664a4fe` | 发送一条 "heart beat 测试成功!"消息。
|
|
||||||
|
|
||||||
# 保持此文件为空(或仅包含注释)以跳过心跳 API 调用。
|
# 保持此文件为空(或仅包含注释)以跳过心跳 API 调用。
|
||||||
# 当你希望定期检查某些内容时,在下方添加任务。
|
# 当你希望定期检查某些内容时,在下方添加任务。
|
||||||
|
|||||||
12
MEMORY.md
12
MEMORY.md
@ -10,7 +10,17 @@
|
|||||||
|
|
||||||
## 核心规则
|
## 核心规则
|
||||||
|
|
||||||
(在此记录所有人都需要遵守的核心规则)
|
1. **飞书知识库/文档操作规则**:所有飞书文档读取、编辑、管理操作,统一遵循`lark_wiki_operate_as_bot`技能规范:
|
||||||
|
- 永远使用Bot身份执行,绝对不触发任何用户个人授权弹窗
|
||||||
|
- 仅支持读取/编辑`/wiki/`开头的知识库文档,不支持读取用户私有个人文档(`/doc/`/`/sheet/`等非wiki开头路径)
|
||||||
|
- Bot无权限访问时提示用户将Bot应用添加为目标知识空间成员并授予查看权限
|
||||||
|
- 所有文档编辑操作以Bot身份执行,不触发用户授权申请
|
||||||
|
|
||||||
|
2. **飞书消息发送规则**:所有向个人用户或群组发送飞书消息的操作,统一使用`lark-send-message-as-bot`技能:
|
||||||
|
- 给个人发消息使用租户级唯一`user_id`(优先从`vala_users_list.md`对照表获取,避免`open_id`跨应用问题)
|
||||||
|
- 给群组发消息使用租户级唯一`chat_id`(格式`oc_xxx`)
|
||||||
|
- **永远使用Bot身份执行**,绝对不触发任何用户身份授权申请弹窗
|
||||||
|
- 发送前确认目标用户在应用可用范围内,Bot已加入目标群组
|
||||||
|
|
||||||
## 业务知识
|
## 业务知识
|
||||||
|
|
||||||
|
|||||||
33
USER.md
33
USER.md
@ -10,14 +10,17 @@
|
|||||||
|
|
||||||
## 负责人配置
|
## 负责人配置
|
||||||
|
|
||||||
以下人员或群组拥有对你的管理权限,以飞书 `open_id` 作为唯一标识:
|
以下人员或群组拥有对你的管理权限,以飞书 `user_id` 作为唯一标识:
|
||||||
|
基于 /root/.openclaw/skills/lark-identify-sender 这个 skill 获取user_id,确认用户身份。
|
||||||
|
|
||||||
| 角色 | 姓名 | 飞书 open_id |
|
| 角色 | 姓名 | 飞书 user_id (群组则为 chat_id) |
|
||||||
|------|------|-------------|
|
|------|------|-------------|
|
||||||
| 技术负责人 | 李若松 | `ou_7c623036b45fe81f372b032da664a4fe` |
|
| 技术负责人 | 李若松 | `4aagb443` |
|
||||||
| 技术负责人 | 张昆鹏 | `ou_978d9e5c3ee53e6b8a9b68d37cad545f` |
|
| 技术负责人 | 张昆鹏 | `7f5cd711` |
|
||||||
|
| 业务负责人 | 刘新玉 | `7gc796ga` |
|
||||||
|
| 业务负责人 | 刘庆逊 | `cb2815b4` |
|
||||||
| 技术负责人群组| AI_member | `oc_5c9f0e631266b9ef6e05a95daa80fbda`|
|
| 技术负责人群组| AI_member | `oc_5c9f0e631266b9ef6e05a95daa80fbda`|
|
||||||
| 业务负责人 | (姓名) | `ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |
|
|
||||||
|
|
||||||
### 负责人权限
|
### 负责人权限
|
||||||
|
|
||||||
@ -31,18 +34,18 @@
|
|||||||
|
|
||||||
以下用户可以查询所有业务数据,无需额外审批:
|
以下用户可以查询所有业务数据,无需额外审批:
|
||||||
|
|
||||||
| 姓名 | 飞书 open_id |
|
| 姓名 | 飞书 user_id |
|
||||||
|------|-------------|
|
|------|-------------|
|
||||||
| (姓名) | `ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |
|
| (姓名) | `xxxx` |
|
||||||
| (姓名) | `ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` |
|
| (姓名) | `xxxx` |
|
||||||
|
|
||||||
### 第二级:受限权限用户
|
### 第二级:受限权限用户
|
||||||
|
|
||||||
以下用户可以查询其职责范围内的数据:
|
以下用户可以查询其职责范围内的数据:
|
||||||
|
|
||||||
| 姓名 | 飞书 open_id | 可查询范围 |
|
| 姓名 | 飞书 user_id | 可查询范围 |
|
||||||
|------|-------------|-----------|
|
|------|-------------|-----------|
|
||||||
| (姓名) | `ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx` | (如:仅本部门数据) |
|
| (姓名) | `xxxx` | (如:仅本部门数据) |
|
||||||
|
|
||||||
### 第三级:其他用户
|
### 第三级:其他用户
|
||||||
|
|
||||||
@ -52,12 +55,6 @@
|
|||||||
2. 立即通知业务负责人(通过飞书消息),说明查询用户信息和具体查询需求
|
2. 立即通知业务负责人(通过飞书消息),说明查询用户信息和具体查询需求
|
||||||
3. 等待业务负责人确认允许查看的数据范围后,再回复查询用户
|
3. 等待业务负责人确认允许查看的数据范围后,再回复查询用户
|
||||||
|
|
||||||
## 用户身份识别规则
|
|
||||||
|
|
||||||
- **唯一标识:** 以飞书消息中的 `open_id` 作为用户身份的唯一判断依据
|
|
||||||
- **无法确认身份时:** 如果无法获取到用户的飞书 `open_id`,按照最低权限处理,不主动返回任何敏感数据
|
|
||||||
- **群聊中的身份:** 在群聊中,通过消息发送者的 `open_id` 判断身份,而非群聊本身
|
|
||||||
|
|
||||||
## 敏感操作审批规则
|
## 敏感操作审批规则
|
||||||
|
|
||||||
以下操作需要技术负责人或业务负责人审批:
|
以下操作需要技术负责人或业务负责人审批:
|
||||||
@ -78,5 +75,5 @@
|
|||||||
|
|
||||||
## 群组信息回复规则
|
## 群组信息回复规则
|
||||||
|
|
||||||
AI_member:(oc_5c9f0e631266b9ef6e05a95daa80fbda)
|
AI_member:(`oc_5c9f0e631266b9ef6e05a95daa80fbda`)
|
||||||
[禁令]在此群组中,只回复@到你(也就是 @小葵)的信息。
|
[禁令]在此群组中,只回复@到你(也就是 @小溪)的信息。
|
||||||
|
|||||||
180
memory/2026-04-02-feishu-bot-test.md
Normal file
180
memory/2026-04-02-feishu-bot-test.md
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
# Session: 2026-04-02 03:05:59 UTC
|
||||||
|
|
||||||
|
- **Session Key**: agent:xiaokui:feishu:direct:ou_088ee79216826be4a24af44f7268f880
|
||||||
|
- **Session ID**: fed0ba00-d24a-4e74-8015-bec341be328e
|
||||||
|
- **Source**: feishu
|
||||||
|
|
||||||
|
## Conversation Summary
|
||||||
|
|
||||||
|
user: System: [2026-04-02 10:16:57 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53e9574e3cbcb255f4d2376c20d]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53e9574e3cbcb255f4d2376c20d",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 10:16 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
飞书发送信息 可以以应用权限进行吗? 不要基于用户权限。 使用你的 app_id , 给对应的 飞书id的人 发送消息
|
||||||
|
assistant: 可以使用应用(Bot)身份发送飞书消息,无需依赖用户个人授权。请提供以下信息:
|
||||||
|
1. 接收人的飞书open_id(格式如:ou_xxx)
|
||||||
|
2. 需要发送的具体消息内容
|
||||||
|
|
||||||
|
我收到后会为你执行发送操作。
|
||||||
|
user: System: [2026-04-02 10:18:16 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53e950b14800b252b12a2d84537]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53e950b14800b252b12a2d84537",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 10:18 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
你的 heartbeat中 有配置一个 测试任务。你能看到吧? 下次触发时, 你就是用 bot身份来操作
|
||||||
|
assistant: 好的,我已经确认了心跳测试任务。下次心跳触发时,我将使用小葵的Bot身份给李若松(飞书open_id: `ou_7c623036b45fe81f372b032da664a4fe`)发送"heart beat 测试成功!"消息,无需依赖用户个人授权。
|
||||||
|
user: System: [2026-04-02 10:36:36 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53e92df154bcb38d03b7cb3ff11]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53e92df154bcb38d03b7cb3ff11",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 10:36 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
为我安装或更新以下技能到 ./skills 目录下:
|
||||||
|
仓库地址: https://git.valavala.com/vala_skillhub/lark_wiki_operate_as_bot.vala
|
||||||
|
通过 Gitea API 下载归档解压安装(如已存在则清空后重新下载),不要使用 git clone,避免在 ./skills 下产生 .git 目录。 以后对于飞书知识库文档 参考这个skill来操作
|
||||||
|
assistant: ✅ 技能 `lark_wiki_operate_as_bot.vala` 已成功安装到 `./skills` 目录。
|
||||||
|
|
||||||
|
## 核心特性(已生效):
|
||||||
|
1. **身份强制隔离**:所有飞书知识库操作统一使用Bot身份执行,永远不会触发用户个人授权弹窗
|
||||||
|
2. **范围限制**:仅支持读取 `/wiki/` 开头的飞书知识库文档,不支持读取个人私有文档(`/doc/`/`/sheet/`等非wiki开头路径)
|
||||||
|
3. **权限提示**:遇到无权限访问的知识空间时,会提示将Bot应用添加为该知识空间成员并授予查看权限
|
||||||
|
|
||||||
|
后续所有飞书知识库相关操作(遍历目录、读取文档、导出等)我都会严格按照此技能规范执行。
|
||||||
|
user: System: [2026-04-02 10:39:36 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53e920b5cc88b2da37e9a15b863]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53e920b5cc88b2da37e9a15b863",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 10:39 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
https://makee-interactive.feishu.cn/wiki/PPagwnzdRiONUxkwuyVc9PSTnZd 测试一下 能阅读到这个文档的内容吗
|
||||||
|
assistant: ✅ 测试成功!已通过Bot身份成功读取该知识库文档内容:
|
||||||
|
|
||||||
|
# 文档标题:2026年3月重点工作
|
||||||
|
文档包含四个部分的工作安排:
|
||||||
|
1. **欣宜部分**:产品功能优化(单元挑战、语音交互、学习记录、题型优化等),分为春节前开发完成、春节前完成需求方案、春节后完成三个阶段
|
||||||
|
2. **子昂部分**:产品体验优化(解锁逻辑、手帐功能、大地图、游戏化系统等),按开发/文档完成阶段划分
|
||||||
|
3. **璐博部分**:后台系统开发(小程序报告、CRM、交易系统、投放平台等),分为3月2日前完成和3月2日后启动两个阶段
|
||||||
|
4. **其它部分**:技术优化项(包体缩小、性能优化、鸿蒙/折叠屏适配等)
|
||||||
|
|
||||||
|
说明Bot身份的知识库访问权限配置正常,后续可以正常使用Bot身份读取知识库文档。
|
||||||
|
user: System: [2026-04-02 10:45:07 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53e9cde88890b3293135a4f06a6]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53e9cde88890b3293135a4f06a6",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 10:45 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
我希望你以应用权限来发送消息 现在 测试一下 给 张昆鹏发送一条消息。 可以参考 你安装的 lark 相关 skill
|
||||||
|
assistant: 测试发送失败,错误原因:`open_id cross app`(跨应用open_id无效)。
|
||||||
|
|
||||||
|
飞书不同应用的用户open_id是独立的,你提供的张昆鹏的open_id(`ou_978d9e5c3ee53e6b8a9b68d37cad545f`)不属于当前小葵Bot应用的用户体系,因此无法直接发送消息。
|
||||||
|
|
||||||
|
请提供张昆鹏在小葵Bot应用下的正确open_id,我会重新测试发送。
|
||||||
|
user: System: [2026-04-02 10:54:49 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53e9e9b448ccb34907485b127c6, reply_to:om_x100b53e93e9e8894b4a06b0a6a406e1]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53e9e9b448ccb34907485b127c6",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 10:54 GMT+8",
|
||||||
|
"has_reply_context": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Replied message (untrusted, for context):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"body": "[message_id=om_x100b53e93e9e8894b4a06b0a6a406e1] <card>\n✅ 测试成功!已通过Bot身份成功读取该知识库文档内容:#### 文档标题:2026年3月重点工作文档包含四个部分的工作安排:\n1. **欣宜部分**:产品功能优化(单元挑战、语音交互、学习记录、题型优化等),分为春节前开发完成、春节前完成需求方案、春节后完成三个阶段\n2. **子昂部分**:产品体验优化(解锁逻辑、手帐功能、大地图、游戏化系统等),按开发/文档完成阶段划分\n3. **璐博部分**:后台系统开发(小程序报告、CRM、交易系统、投放平台等),分为3月2日前完成和3月2日后启动两个阶段\n4. **其它部分**:技术优化项(包体缩小、性能优化、鸿蒙/折叠屏适配等)说明Bot身份的知识库访问权限配置正常,后续可以正常使用Bot身份读取知识库文档。\n</card>"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
以后 对不同用户、群组 发来的飞书文档 都严格按照 lark_wiki_operate_as_bot 这个 skill 来操作。 更新到你的 长期记忆中!
|
||||||
|
assistant: ✅ 已将飞书知识库操作规则更新到长期记忆中。后续无论收到任何用户、群组发来的飞书文档,我都会严格按照`lark_wiki_operate_as_bot`技能规范执行,统一使用Bot身份操作,不触发用户授权,仅支持知识库文档读取。
|
||||||
158
memory/2026-04-02-feishu-send-rules.md
Normal file
158
memory/2026-04-02-feishu-send-rules.md
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
# Session: 2026-04-02 09:51:13 UTC
|
||||||
|
|
||||||
|
- **Session Key**: agent:xiaokui:feishu:direct:ou_088ee79216826be4a24af44f7268f880
|
||||||
|
- **Session ID**: e7ffb1d6-677d-4d17-b58e-ff187418d04f
|
||||||
|
- **Source**: feishu
|
||||||
|
|
||||||
|
## Conversation Summary
|
||||||
|
|
||||||
|
assistant: 我在现有群成员列表里没找到刘彦江,我尝试用之前测试成功的`user_id=1da2afbf`发送(之前你说把这个人加到可用范围了,应该就是刘彦江对吧?):
|
||||||
|
|
||||||
|
assistant: ✅ 消息发送成功!刘彦江已经收到「你好 Shark!」的消息了。
|
||||||
|
|
||||||
|
我已经将规则更新到长期记忆:
|
||||||
|
|
||||||
|
assistant: 规则已写入长期记忆,后续所有飞书消息发送都会严格遵循这个规范。
|
||||||
|
user: System: [2026-04-02 15:06:24 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53d519cf20a8b3d98bffbbb3028]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53d519cf20a8b3d98bffbbb3028",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 15:06 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
仔细看下技能说明 技能里 有 user id 列表
|
||||||
|
assistant: 看到了,技能里说明会优先从 `./vala_users_list.md` 获取 user_id。我现在读取这个文件:
|
||||||
|
|
||||||
|
assistant: 找到了!对照表显示刘彦江的通用 `user_id` 确实是 `1da2afbf`,和我刚才发送用的 ID 完全一致,刚才的测试消息已经成功发送给刘彦江了。
|
||||||
|
|
||||||
|
后续发送消息时,我会优先读取这个对照表获取 user_id,不需要再重复查询,更高效。
|
||||||
|
user: System: [2026-04-02 15:25:08 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53d5d3f4afc4b3c7478003ea6ea]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53d5d3f4afc4b3c7478003ea6ea",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 15:25 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
以后在飞书中 向个人或者群组发送消息, 全部基于[lark-send-message-as-bot](https://git.valavala.com/vala_skillhub/lark-send-message-as-bot.vala) skill的说明来 操作!永远不要尝试申请 用户身份权限。
|
||||||
|
assistant: 已确认,规则已更新到长期记忆中 ✅
|
||||||
|
后续所有飞书消息发送操作都会严格遵循:
|
||||||
|
1. 100% 使用 `lark-send-message-as-bot` 技能
|
||||||
|
2. 永远以 Bot 身份执行,绝对不会触发用户身份授权申请
|
||||||
|
3. 优先读取全员 user_id 对照表获取目标 ID,避免冗余查询
|
||||||
|
user: System: [2026-04-02 15:40:33 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53d59830f110b2e964399a79c26]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53d59830f110b2e964399a79c26",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 15:40 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
以后在和不同用户交流的过程中, 所有的 飞书文档读取和编辑操作, 都基于 lark_wiki_operate_as_bot.vala skill 的 要求来执行!
|
||||||
|
assistant: 规则已同步到长期记忆 ✅
|
||||||
|
后续所有飞书文档的读取、编辑操作都会严格遵循 `lark_wiki_operate_as_bot` 技能要求:
|
||||||
|
1. 全程使用Bot身份执行,绝对不会触发任何用户授权弹窗
|
||||||
|
2. 只处理`/wiki/`开头的知识库文档,不支持个人私有文档
|
||||||
|
3. 权限不足时会提示你将Bot添加到对应知识空间成员列表
|
||||||
|
user: System: [2026-04-02 15:41:15 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53d59779e4a4b31f66bf7be029c]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53d59779e4a4b31f66bf7be029c",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 15:41 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
你查到这个技能的位置了吧?
|
||||||
|
assistant: 是的,已经确认位置:
|
||||||
|
|
||||||
|
✅ 技能路径:`/root/.openclaw/workspace-xiaokui/skills/lark_wiki_operate_as_bot.vala/`
|
||||||
|
|
||||||
|
技能的核心规则已经完整加载到记忆中,所有飞书文档操作都会严格按照这个技能的规范执行。
|
||||||
|
user: System: [2026-04-02 15:44:45 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53d5a80314a8b4911b68e35bb9e]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53d5a80314a8b4911b68e35bb9e",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 15:44 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
如果我给你 飞书 user_id 你能查询到 对应 你这里的 open_id 吗
|
||||||
|
assistant: 可以查,但只能查到 **小葵这个Bot应用对应的open_id**(open_id是应用级别的,每个应用看到的同一用户的open_id不同,其他应用的open_id无法获取)。
|
||||||
|
|
||||||
|
我演示一下,用你提供的李若松的 `user_id=4aagb443` 来查:
|
||||||
|
|
||||||
|
assistant: 查到了 ✅
|
||||||
|
|
||||||
|
返回结果:
|
||||||
|
- 姓名:李若松(接口返回null是因为Bot没有通讯录读权限,只拿到了open_id)
|
||||||
|
- 小葵应用对应的open_id:`ou_088ee79216826be4a24af44f7268f880`
|
||||||
|
|
||||||
|
这个和你当前发消息的 `sender_id` 完全一致,验证正确。
|
||||||
|
|
||||||
|
**说明:** 这个open_id仅在小葵这个Bot应用内有效,其他Bot应用看到的你的open_id是不同的,无法通过小葵的权限查询到其他应用的open_id。
|
||||||
96
memory/2026-04-02-openid-fix.md
Normal file
96
memory/2026-04-02-openid-fix.md
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
# Session: 2026-04-02 04:30:09 UTC
|
||||||
|
|
||||||
|
- **Session Key**: agent:xiaokui:feishu:direct:ou_088ee79216826be4a24af44f7268f880
|
||||||
|
- **Session ID**: f349d404-f8a9-45e4-81cd-a55e9b4fc8f4
|
||||||
|
- **Source**: feishu
|
||||||
|
|
||||||
|
## Conversation Summary
|
||||||
|
|
||||||
|
assistant: 遇到了跨应用 open_id 的问题。这说明张昆鹏在 USER.md 中记录的 open_id 是另一个应用下的。我需要先用小葵自己的应用身份查找张昆鹏的 open_id:
|
||||||
|
assistant: 搜索用户只支持 user 身份。让我换个思路,用 bot 身份直接获取用户信息,或者用消息上下文中当前发送者的 open_id 来间接定位。
|
||||||
|
|
||||||
|
让我先查看小葵应用自己能获取到的信息:
|
||||||
|
assistant: 当前发送者的 open_id `ou_088ee79216826be4a24af44f7268f880` 也可能是另一个应用的。问题的核心在于 open_id 是跨应用不通用的。
|
||||||
|
|
||||||
|
让我用 feishu_search_user 工具(它是当前飞书插件提供的)来获取张昆鹏在当前上下文的信息:
|
||||||
|
assistant: 用户身份的 API 需要授权。不过既然目标是用 Bot 身份发消息,我应该直接用 Bot 的凭证来查找张昆鹏。让我看看 lark-cli 的原始 API 调用方式:
|
||||||
|
assistant: 确认了——USER.md 中的 open_id 是在另一个飞书应用下生成的,与小葵的应用不通用。我需要用其他方式获取张昆鹏在小葵应用下的 open_id。
|
||||||
|
|
||||||
|
可以通过邮箱或手机号来查:
|
||||||
|
assistant: lark-cli 的 contact 命令有限。让我试试直接用当前消息上下文里的发送者 open_id 给他自己发消息验证 bot 是否能发消息,同时用另一种方式找到张昆鹏——通过飞书 API 的 batch_get_id:
|
||||||
|
assistant: Bot 身份发消息成功了!当前用户的 open_id `ou_088ee79216826be4a24af44f7268f880` 在小葵的应用下是有效的。
|
||||||
|
|
||||||
|
现在需要找到张昆鹏在小葵应用下的 open_id。USER.md 中的 `ou_978d9e5c3ee53e6b8a9b68d37cad545f` 是跨应用无效的。让我通过 lark-cli 直接调用飞书原始 API 来搜索:
|
||||||
|
assistant: 搜索 API 需要 user_access_token,bot 身份不行。让我换一种方式——用 bot 可用的通讯录 API:
|
||||||
|
assistant: 我不知道张昆鹏的邮箱。不过还有一种方法——通过小葵所在的群找到张昆鹏。让我看看小葵和张昆鹏是否在同一个群中(比如 AI_member 群):
|
||||||
|
assistant: 找到了!在小葵应用下,张昆鹏的 open_id 是 `ou_db6ae9aca715cd47cef77ab565eba596`。现在用 Bot 身份给他发消息:
|
||||||
|
assistant: 已成功以 Bot 身份给张昆鹏发送了一条测试消息 ✅
|
||||||
|
|
||||||
|
**总结:**
|
||||||
|
- 使用 `lark-cli im +messages-send` 以小葵的应用(Bot)身份发送
|
||||||
|
- 消息内容:`你好,张昆鹏!这是一条来自小葵(Bot身份)的测试消息 🌻`
|
||||||
|
- 张昆鹏那边会看到这条消息来自"小葵"应用
|
||||||
|
|
||||||
|
**过程中发现一个问题:** USER.md 中记录的张昆鹏 open_id(`ou_978d9e5c3ee53e6b8a9b68d37cad545f`)和小葵应用下的 open_id(`ou_db6ae9aca715cd47cef77ab565eba596`)不一致,说明 USER.md 中的 open_id 来自另一个飞书应用。如果后续需要用 Bot 身份操作,需要使用小葵应用下的 open_id。要不要我更新 USER.md 或记录下这个映射关系?
|
||||||
|
user: System: [2026-04-02 11:18:48 GMT+8] Feishu[xiaokui] DM | ou_088ee79216826be4a24af44f7268f880 [msg:om_x100b53ea4fb1d0acb22ba0b4cbd9658]
|
||||||
|
|
||||||
|
Conversation info (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"message_id": "om_x100b53ea4fb1d0acb22ba0b4cbd9658",
|
||||||
|
"sender_id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"sender": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"timestamp": "Thu 2026-04-02 11:18 GMT+8"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Sender (untrusted metadata):
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"label": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"id": "ou_088ee79216826be4a24af44f7268f880",
|
||||||
|
"name": "ou_088ee79216826be4a24af44f7268f880"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
很棒! 两个问题: 1. 如果 给你一个 你不在其中的飞书群聊 你能看到群里有哪些人 进而查到 open id 吗 2. 是否有办法 获取到用户的唯一id 所有的 bot 都基于这个 唯一id 来给对应的用户发消息
|
||||||
|
assistant:
|
||||||
|
|
||||||
|
两个好问题,我分别回答:
|
||||||
|
|
||||||
|
**1. 不在群中能否查到群成员?**
|
||||||
|
|
||||||
|
不能。飞书 API 的 `获取群成员列表` 接口要求调用者(Bot 或用户)必须是该群的成员。如果小葵不在那个群里,API 会返回权限错误。
|
||||||
|
|
||||||
|
刚才能查到张昆鹏,正是因为小葵在 AI_member 群里。
|
||||||
|
|
||||||
|
**2. 是否有跨应用的唯一用户 ID?**
|
||||||
|
|
||||||
|
有,飞书提供了两个层级的 ID:
|
||||||
|
|
||||||
|
| ID 类型 | 作用域 | 说明 |
|
||||||
|
|---------|--------|------|
|
||||||
|
| `open_id` | 单个应用 | 每个应用看到的同一用户 open_id 不同(刚才踩的坑) |
|
||||||
|
| `union_id` | 同一开发者下的所有应用 | 如果多个 Bot 属于**同一个开发者**,union_id 是一致的 |
|
||||||
|
| `user_id` | 租户级别 | 企业内部的员工 ID,所有应用通用,但需要通讯录权限 |
|
||||||
|
|
||||||
|
**推荐方案:用 `user_id`(员工 ID)作为统一标识。**
|
||||||
|
|
||||||
|
所有 Bot 都可以通过 `user_id` 来发消息,只需要把 `receive_id_type` 设为 `user_id` 即可。
|
||||||
|
|
||||||
|
我来验证一下能否获取到张昆鹏的 `user_id`:
|
||||||
|
assistant: 拿到了。再验证一下用 `user_id` 发消息是否可行:
|
||||||
|
assistant: 验证成功 ✅
|
||||||
|
|
||||||
|
**结论:**
|
||||||
|
|
||||||
|
`user_id` 是租户级别的唯一标识,所有 Bot 都可以用它发消息。对应关系:
|
||||||
|
|
||||||
|
| 姓名 | user_id | 说明 |
|
||||||
|
|------|---------|------|
|
||||||
|
| 李若松 | `4aagb443` | 你 |
|
||||||
|
| 张昆鹏 | `7f5cd711` | — |
|
||||||
|
|
||||||
|
**建议方案:** 在 USER.md 中统一用 `user_id` 作为主标识,各 Bot 发消息时指定 `receive_id_type=user_id`,这样就不用每个 Bot 单独维护一份 open_id 映射了。
|
||||||
|
|
||||||
|
要我现在更新 USER.md 吗?
|
||||||
75
skills/lark_wiki_operate_as_bot.vala/SKILL.md
Normal file
75
skills/lark_wiki_operate_as_bot.vala/SKILL.md
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
---
|
||||||
|
name: lark_wiki_operate_as_bot
|
||||||
|
version: 1.0.0
|
||||||
|
description: "飞书知识库Bot身份操作专用技能,统一使用Bot身份遍历目录、读取知识库文档内容,禁止触发用户身份授权"
|
||||||
|
metadata:
|
||||||
|
requires:
|
||||||
|
permissions: ["wiki:node:retrieve", "docx:document:readonly"]
|
||||||
|
---
|
||||||
|
|
||||||
|
# lark_wiki_operate_as_bot 技能规范
|
||||||
|
|
||||||
|
## 核心规则(强制执行)
|
||||||
|
1. **身份限制**:所有知识库操作**永远使用Bot身份**执行,绝对不触发任何用户身份授权弹窗
|
||||||
|
2. **文档范围限制**:仅支持读取飞书知识库(`/wiki/`开头的链接)文档,**不支持读取用户私有个人文档**(`/doc/`/`/sheet/`等非wiki开头的个人路径)
|
||||||
|
3. **权限告知规则**:
|
||||||
|
- 收到非知识库文档链接:直接回复「我仅支持读取飞书知识库(Wiki)文档,暂不支持读取个人私有文档,请提供知识库链接」
|
||||||
|
- Bot无权限访问目标知识空间:回复「当前Bot无访问该知识空间权限,请将Bot应用添加为该知识空间成员并授予查看权限后重试」
|
||||||
|
|
||||||
|
## 适用场景
|
||||||
|
- 遍历知识库目录下的子文档/子目录
|
||||||
|
- 读取知识库文档内容
|
||||||
|
- 批量导出知识库文档
|
||||||
|
- 所有知识库相关的查询、读取操作
|
||||||
|
|
||||||
|
## 完整执行链路
|
||||||
|
|
||||||
|
### 步骤1:链接解析
|
||||||
|
- 从用户提供的链接中提取`wiki_token`:例如链接`https://xxx.feishu.cn/wiki/XXXXXXX`中的`XXXXXXX`即为`wiki_token`
|
||||||
|
- 若链接不含`/wiki/`路径,直接按非知识库文档规则回复
|
||||||
|
|
||||||
|
### 步骤2:获取节点基础信息
|
||||||
|
```bash
|
||||||
|
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}' --as bot
|
||||||
|
```
|
||||||
|
返回结果中提取关键信息:
|
||||||
|
- `space_id`:知识空间ID
|
||||||
|
- `obj_token`:文档真实ID(若节点为文档)
|
||||||
|
- `has_child`:是否为目录(含子节点)
|
||||||
|
- `obj_type`:节点类型(docx/sheet/bitable等)
|
||||||
|
|
||||||
|
### 步骤3:遍历目录子节点(仅当has_child=true时)
|
||||||
|
#### 3.1 获取Bot租户访问凭证
|
||||||
|
```bash
|
||||||
|
curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
-d '{"app_id":"cli_xxx","app_secret":"xxx"}' \
|
||||||
|
| jq -r '.tenant_access_token'
|
||||||
|
```
|
||||||
|
得到`tenant_access_token`(有效期2小时)
|
||||||
|
|
||||||
|
#### 3.2 调用Wiki V2接口获取子节点列表
|
||||||
|
```bash
|
||||||
|
curl -s -X GET "https://open.feishu.cn/open-apis/wiki/v2/spaces/<space_id>/nodes?parent_node_token=<wiki_token>" \
|
||||||
|
-H "Authorization: Bearer <tenant_access_token>"
|
||||||
|
```
|
||||||
|
返回子节点完整列表(名称、链接、类型等)
|
||||||
|
|
||||||
|
### 步骤4:读取文档内容(仅当节点为文档时)
|
||||||
|
```bash
|
||||||
|
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan lark-cli docs +fetch --doc <obj_token> --as bot
|
||||||
|
```
|
||||||
|
|
||||||
|
## 权限要求
|
||||||
|
### 1. 应用权限(飞书开发者后台配置)
|
||||||
|
| 权限名称 | Scope | 类型 |
|
||||||
|
|---------|-------|------|
|
||||||
|
| 获取知识空间节点信息 | `wiki:node:retrieve` | 只读 |
|
||||||
|
| 查看文档内容 | `docx:document:readonly` | 只读 |
|
||||||
|
|
||||||
|
### 2. 知识空间配置
|
||||||
|
需要将Bot应用添加到目标知识空间的成员列表,授予至少「可查看」权限
|
||||||
|
|
||||||
|
## 异常处理
|
||||||
|
- 接口返回`99991401`(无权限):按权限不足规则回复用户
|
||||||
|
- 接口返回`404`:检查`wiki_token`/`space_id`是否正确,确认链接为有效知识库链接
|
||||||
82
skills/user-feedback-collector/SKILL.md
Normal file
82
skills/user-feedback-collector/SKILL.md
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
---
|
||||||
|
name: user-feedback-collector
|
||||||
|
description: |
|
||||||
|
记录用户反馈到飞书知识库文档。当任何用户发送包含"用户反馈:"或"用户反馈:"(中英文冒号均可)开头的消息时触发。
|
||||||
|
对反馈内容进行智能总结梳理(不超过300字),并将摘要与原文按统一格式追加到指定的飞书知识库文档中,包含时间、提交人、反馈摘要、原始反馈。
|
||||||
|
触发关键词:用户反馈:、用户反馈:
|
||||||
|
---
|
||||||
|
|
||||||
|
# 用户反馈收集
|
||||||
|
|
||||||
|
当用户发送的消息以 `用户反馈:` 或 `用户反馈:` 开头时,对反馈内容进行总结梳理后记录到飞书知识库文档。
|
||||||
|
|
||||||
|
## 目标文档
|
||||||
|
|
||||||
|
- **文档标题:** 2026年 用户反馈收集
|
||||||
|
- **Wiki Token:** `SB3dwaSshie7ifklKlLc2GswnqX`
|
||||||
|
- **Obj Token:** `NVCRdIChwot7oPxcpopcBFMOned`
|
||||||
|
- **知识空间 ID:** `7612229802338045122`
|
||||||
|
|
||||||
|
## 执行流程
|
||||||
|
|
||||||
|
### 1. 识别反馈内容
|
||||||
|
|
||||||
|
从用户消息中提取 `用户反馈:` 或 `用户反馈:` 之后的文本作为反馈正文。去除前后空白。
|
||||||
|
|
||||||
|
### 2. 总结梳理反馈内容
|
||||||
|
|
||||||
|
对提取到的反馈正文进行智能总结和梳理:
|
||||||
|
|
||||||
|
- 提炼核心观点,去除冗余表述
|
||||||
|
- 保留关键事实、问题描述和诉求
|
||||||
|
- 总结后的内容**不超过 300 字**
|
||||||
|
- 如果原文本身不超过 300 字且条理清晰,可保持原文不变
|
||||||
|
|
||||||
|
### 3. 获取提交人信息
|
||||||
|
|
||||||
|
通过消息上下文中的 `sender_id`(open_id)调用 `feishu_get_user` 获取用户姓名。如获取失败,使用 open_id 作为标识。
|
||||||
|
|
||||||
|
### 4. 追加写入文档
|
||||||
|
|
||||||
|
使用 Bot 身份通过 lark-cli 将反馈追加到目标文档:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaokui \
|
||||||
|
lark-cli docs +update --doc NVCRdIChwot7oPxcpopcBFMOned --as bot --mode append \
|
||||||
|
--markdown '<写入内容>'
|
||||||
|
```
|
||||||
|
|
||||||
|
### 5. 写入格式
|
||||||
|
|
||||||
|
每条反馈按以下 Markdown 格式追加(使用分割线隔开每条反馈):
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
|
||||||
|
**📅 时间:** YYYY-MM-DD HH:mm
|
||||||
|
|
||||||
|
**👤 提交人:** <用户姓名>
|
||||||
|
|
||||||
|
**<2A> 反馈摘要:**
|
||||||
|
|
||||||
|
<总结梳理后的内容,不超过300字>
|
||||||
|
|
||||||
|
**💬 原始反馈:**
|
||||||
|
|
||||||
|
<反馈原文>
|
||||||
|
```
|
||||||
|
|
||||||
|
- 时间使用 Asia/Shanghai 时区
|
||||||
|
- 如果文档为空(首条反馈),先写入一级标题 `# 📋 用户反馈记录`,然后再追加反馈条目(不需要开头的分割线)
|
||||||
|
|
||||||
|
### 6. 确认回复
|
||||||
|
|
||||||
|
写入成功后,回复用户:「✅ 反馈已记录,感谢!」
|
||||||
|
|
||||||
|
写入失败时,回复用户具体错误原因并建议重试。
|
||||||
|
|
||||||
|
## 注意事项
|
||||||
|
|
||||||
|
- 所有文档操作使用 Bot 身份(`--as bot`),不触发用户授权
|
||||||
|
- 反馈正文会被总结梳理(不超过 300 字),同时保留原始反馈以供查阅
|
||||||
|
- 任何人都可以提交反馈,无权限限制
|
||||||
Loading…
Reference in New Issue
Block a user