## 概述 / Overview 两件事:新增「企业微信助手」Agent(自带 15 个技能),并修正 `wecom-cli` 条目钉在 6 月快照的 ref 漂移。 Two changes: adds the **WeCom Assistant** agent (bundling 15 skills), and fixes the `wecom-cli` entry whose pinned ref was stuck on a June snapshot. ## 1. 新增企业微信助手 Agent 覆盖企业微信 **14 类服务、95 个方法**:消息、群聊历史、通讯录、日程、会议、待办、邮件、在线文档、在线表格、智能表格、智能文档、文档管理、微盘、媒体文件。 **采用内联形态 + 自带私有技能**:Agent 安装对 `agents/<id>/` 整目录递归复制且 `skills/` 不在排除集合里,因此装 Agent 即带全部技能,用户无需再单独获取技能合集。 ### 技能集(15 个,约 5000 行) - 基于上游 [wecom-cli](https://github.com/WecomTeam/wecom-cli) 官方 Skill(MIT,© WecomTeam)改写,每个技能末尾保留归属声明 - **新增 `wecom-chat`**:补齐上游零覆盖的群聊历史读取 - 补齐上游未覆盖的 `message.send`、`doc.create`,方法覆盖达 **95/95** - 修正上游三处文档漂移:邮件能力描述与实际相反、会议室参数名已过时、`title_highlight` 字段不存在 ### 相对上游的核心增量:风险治理 - 26 个对外可见或不可逆的方法逐个写明**执行前确认要求** - 4 个条件升级方法给出**参数级判据**,而非按方法名一刀切 - 文档权限扩散两项加重处理,涉及**企业外可见**时单独再确认一次 - 内部标识禁止外露,不因用户索要而放宽 - 拒绝导出可识别到具体自然人的隐私字段 ### 三条真机实测得出、上游未覆盖的硬约束 1. 机器人**只能写入/修改自己创建的数据**,真人创建的只能读 2. 每次响应携带的 `extra_identity_context` **禁止透露给用户** 3. 权限错误(`850002`/`851008`/`853006`)**不得重试**,须将 `help_message` **逐字原样**转给用户 ## 2. 修正 wecom-cli 条目 ref 漂移 `source.ref` 原钉在 2026-06-28 的 `72e14f7`,该快照只有 7 个子技能且用已废弃的旧命名(`msg`/`schedule`)。上游 v1.2.0 已扩展到 **14 个**技能。按旧 ref 安装的用户拿到的是三个月前的快照。 - `source.ref` → `78c514b2afee7c0d3d7be715628478421f37ee63` - `children` 由 `scripts/gen-collection-children.py` 重新生成,**7 → 14** - sidecar 同步 `provenance.content.ref`、`childCount` 与 `children` ## 验证 / Verification **静态** - 215 条示例命令追加 `--dry-run` 实跑,**215/215 退出码 0** - 未知方法 0、未知参数 0、`--json` 未知字段 0、枚举违规 0 - 15 个 `SKILL.md` 的 frontmatter 经客户端 `skillFrontmatterSchema` 校验全部通过 - `validate_catalog_metadata.py --require-complete` 与 `gen-collection-children.py`:**0 error** **真机(在真实企业微信账号上端到端)** - **待办域 6/6 方法全通**(含 2 个 write-high),`items` 必填的隐蔽坑实测证实 - **日程域 5 个方法全通**(含 3 个 write-high) - 消息发送、通讯录解析、微盘列表、邮件搜索、文档搜索、会议列表、智能表格创建均已实测通过 - 测试数据已全部清理,未污染真实账号 **尚未实测**:群聊历史(机器人未开通该品类)。相关文档已明确标注验证状态,未实测的能力不写「实际效果」段落。
6.5 KiB
群聊历史
读企业微信群里的历史消息:先看最近有哪些群在说话,再拉某个群某段时间的消息明细, 需要时把群里发的图片和文件取下来。只支持最近 7 天。 这是整套能力里隐私敏感度最高的一项——读到的是别人的聊天原文,所以助手每次读之前都会先说明要读什么。
⚠️ 这一域的全部能力目前完全未验证。 实测账号的机器人未开通「群聊会话」品类, 第一步就被企业微信拒绝,后面的所有能力都没有机会验证。详见下方「验证状态」。
你可以怎么说
「项目 A 群这两天聊了什么?」 「昨天群里说的那个事,帮我找一下」 「帮我总结一下产品群这周的讨论」 「把群里发的那个文件找出来」 「这周哪些群比较活跃?」
📋 验证状态
| 项 | 状态 |
|---|---|
| 列出最近有消息的群会话 | ❌ 未实测——被权限拦住 |
| 拉取某个群的消息明细 | ❌ 未实测 |
| 取群消息里的图片 / 文件 | ❌ 未实测 |
| 隐私说明、7 天窗口等行为约定 | ❌ 未实测 |
卡在哪(这是唯一有据可查的事实):
wecom-cli chat groups list ...
# → 返回错误码 853006
853006 的含义是同类未授权——实测账号的机器人没有开通「群聊会话」这个品类。
第一次调用就被拒,所以从「有哪些群」开始的整条链路都没跑起来。
因此本文档不含「实际效果」一节,也不含任何实测对话或返回值 (下文出现的引用块都是措辞示意,不是跑出来的记录)。 下面「能力清单」与「注意事项」的内容来自接口定义与技能文档,是设计意图,不是实测结论。 真正跑通之前,它们只能当作「预期会这样」来看。
要让它可用:需要为机器人开通群聊会话品类。助手第一次碰到这个错误时,会把企业微信官方的 开通指引原样转给你(含链接,一字不改),然后停下来——不会反复重试,也不会换个方法绕。
能力清单
以下均未实测。
| 能做什么 | 命令 | 风险 |
|---|---|---|
| 列出最近 7 天有消息的群会话 | wecom-cli chat groups list |
读取(隐私敏感:暴露群名与活跃度) |
| 拉取指定会话在某时间段的消息明细 | wecom-cli chat messages list |
读取(最高隐私敏感:他人聊天原文) |
| 取消息里的图片 / 文件 / 语音 / 视频 | wecom-cli message files get |
读取(隐私敏感:他人发的文件内容) |
三个都是只读,对企业微信侧没有任何改动,所以不需要「高风险确认」那一套。 但因为读的是别人的内容,执行前必须先说明要读什么。
注意事项
读之前会先告诉你要读什么。 助手会先说一句类似这样的话,再动手:
我将读取「项目 A 群」2026-08-29 00:00 至 2026-08-31 23:59 的聊天记录,用于整理讨论要点。
范围必须具体到哪个会话 + 哪个时间段 + 读来干什么。你没指定群时,它会先把群列出来让你选, 不会「先全都拉下来再说」——不会为了省一次交互就批量遍历好几个群。
它不做人物画像。 拉下来的原文只用于回答你当前这个问题,不主动扩散、不统计 「谁说话最多」「谁最晚下班」这类对个人的行为分析,除非你明确要求且目的正当。
敏感信息会被略去。 聊天记录里出现身份证号、银行卡号、家庭住址、健康状况这类能识别到具体个人的信息, 助手不摘录、不转述、不写进总结,即使你要求。它会说明「记录中含敏感个人信息,已略去」。
只有最近 7 天,而且越界时是「静默返回空」不是报错。 这是最容易误判的一条:查 7 天以前的内容,企业微信不会告诉你「超范围了」, 而是给你一个空列表。所以——
- 你说「上个月群里那个事」时,助手会先告诉你只能查最近 7 天,而不是拉一次空结果再回你「没找到」。 这两句话对你的意义完全不同。
- 拿到空结果时,它会先自查时间范围是不是越界了,再下「这段时间没有消息」的结论。
- 它不会用多次分段查询去凑 7 天以前的数据——服务端不给就是不给。
只有群聊,没有单聊。 「最近有哪些会话」这个列表目前只返回群聊。 你要看「我和张三的私聊记录」时,助手会先去通讯录把张三解析出来,再按人去拉,不会在群列表里找。
图文混排的消息容易被漏掉。 群里那种「一段文字配几张图」的消息,正文藏在嵌套结构里。 助手知道要去里面取,不会把它当成空消息漏掉——这一点在总结里最容易出现「消息凭空消失」。
不会无限翻页。 一个群一段时间的消息可能很多,助手会设一个页数上限,拉够了就停下来做总结, 并告诉你「还有更多历史消息,需要的话可以继续拉」。
能读的群 ≠ 能发消息的会话。 这两个是不同的集合,内部标识也不能互相搬运。 要往群里发东西,走 03 消息与会话,那边有它自己的一套限制。
三条通用边界在本域怎么体现
- 只能改它自己建的东西——这一域完全只读,本来就不写任何东西。 助手不能替你在群里发言、不能撤回别人的消息、也不能编辑聊天记录。
- 能力按品类逐项开通——本域正是这条规则最直接的受害者:群聊会话品类未开通, 整个能力就是黑的。助手会把官方开通指引原样转给你,然后停下。
- 危险动作先问你——这里没有「危险写入」,但有隐私读取的说明义务: 读之前必须讲清读哪个会话、什么时间段、读来干什么。这条不因为「只是读一下」而放宽。
相关
- 03 消息与会话——往群里发消息(与本域是两套独立的会话范围)
- 02 通讯录——想读某人的单聊记录时,先在这里把人解析出来
- 15 媒体文件——把群里的图片、文件落到本地
- 99 风险与确认——隐私敏感读取的完整规则
- README 的验证进度——本域为什么被列为「完全未实测」