## 概述 / 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) - 消息发送、通讯录解析、微盘列表、邮件搜索、文档搜索、会议列表、智能表格创建均已实测通过 - 测试数据已全部清理,未污染真实账号 **尚未实测**:群聊历史(机器人未开通该品类)。相关文档已明确标注验证状态,未实测的能力不写「实际效果」段落。
7.7 KiB
文档管理
企业微信四种在线文档(在线文档 / 在线表格 / 智能表格 / 智能文档)共用的**「文件级」管理**: 搜索、改名、加协作成员与权限、设置链接加入规则。它管的是文件这个壳—— 它叫什么、谁能进来、进来能干什么——不碰文件里的一个字。
两件事只有这里能做:
- 搜索文档——不论哪种类型,这是唯一的入口。其他四个内容能力都没有搜索方法。
- 改文档名 / 改权限——不论哪种类型,都在这里。
同时它也是整套能力里风险最高的一域:改加入规则可能放开企业外访问。
你可以怎么说
「帮我找一下那个产品周报文档」 「我最近看过哪些文档?」 「我这周建的文档有哪些?」 「把这个文档改名叫 2026 年 Q3 项目周报」 「把张三加到这个文档里,让他能编辑」 「给客户发个只读链接」
📋 验证状态
| 项 | 状态 |
|---|---|
| 修改文档名称 | ✅ 已实测 |
| 搜索文档 | ⚠️ 未实测 |
| 添加协作成员 / 设置权限 | ⚠️ 未实测(高风险,未在真人身上做权限扩散实验) |
| 设置链接加入规则 | ⚠️ 未实测(风险最高,未做实验) |
| 完整链路(你说一句话 → 助手自动找到并改完) | ⚠️ 未实测 |
实测记录(命令层,人工在真实账号上执行):
wecom-cli doc names update ... # ✅ 重命名成功
这一条是在清理测试数据时验证的——4 份测试文档(在线文档 / 在线表格 / 智能表格 / 智能文档) 全部被重命名为「【可删除】DesireCore验收测试-*」。四种类型都改成功了, 侧面印证了「一套管理接口对四种文档统一生效」。
权限相关的两个方法一条都没测——它们会真实改变别人能看到什么, 不适合拿真实文档和真人做验收实验。所以本页不写「实际效果」,也不虚构任何搜索结果或权限变更记录。
能力清单
| 能做什么 | 命令 | 风险 |
|---|---|---|
| 搜索文档(含「最近浏览 / 最近创建」) | wecom-cli doc search |
读取 |
| 修改文档名称 | wecom-cli doc names update |
低风险写入 |
| 添加协作成员并设置权限 | wecom-cli doc members update |
高风险写入(权限扩散) |
| 设置链接加入规则(企业内 / 企业外) | wecom-cli doc rules update |
高风险写入(权限扩散,可放开企业外) |
两个高风险方法属于权限扩散类:它们不改文档里的一个字,却直接改变「谁能看到这份文档的全部内容」。 后果不可逆——已经看过的人就是看过了,而且命令行侧没有撤销接口。 所以它们的确认比其他高风险动作更重。
注意事项
改加入规则是整套能力里最危险的一件事。 把「企业外成员加入权限」改成可浏览或可编辑,意味着不在你们企业微信通讯录里的任何人, 只要拿到链接就能访问这份文档的全部内容——这是数据外泄级别的变更, 链接被转发出去后无法收回。
所以助手在这里加了三道额外的闸门:
- 涉及企业外时会单独再确认一次,把后果单独说清:
这份文档将不再限于本企业内部可见,链接被转发出去后无法收回。
- 「发个链接就能看」不等于「开企业外」。 默认只动企业内的加入权限。 要动企业外,**必须由你明确说出「企业外 / 外部 / 客户 / 合作方」**这类对象; 含糊时它会追问「是仅企业内部,还是也包括企业外的人?」。
- 不知道文档里有什么就不开企业外。 你要求放开而助手没读过这份文档时, 它会先提示「这份文档的内容我没有读过,开放给企业外前请你确认其中不含敏感信息」。
想收紧(关掉外部访问)也要说清楚——不提这一项等于保持现状,不是关闭。
加成员只能加,不能删。 命令行没有移除成员的方法。加错了助手也删不掉, 只能引导你去企业微信客户端手动移除——它不会假装能撤销。这也是加成员前要确认的原因之一。
不会默认给高权限。 「把张三加进来」这个说法本身不构成「让他能编辑」的明确表示。
| 你怎么说 | 会给什么权限 |
|---|---|
| 「让他看看」「发给他参考」 | 仅浏览 |
| 「让他一起写」「他要填表」 | 可编辑 |
| 「让他管这个文档」「他来分配权限」 | 管理员 |
你没说清楚时助手会问一句,不会自己选可编辑或管理员。
搜索只能搜到你有权限访问的文档。 搜不到不等于文档不存在,可能只是你无权访问。 你让它查「张三参与的文档」时,助手必须提醒你:结果只包含你自己也有权限访问的那部分—— 这个能力不能用来窥探别人的文档列表。
搜索会先分词再搜。 把整句话当成一个关键词传进去是搜不到东西的头号原因。 助手会先剔除「帮我」「找下」「的」「文档」这类口语词,再把真正有区分度的词组合起来搜。
搜出多条它不会替你挑。 结果超过 1 条时,助手会用「序号 + 文档名(可点击链接)+ 最近修改时间」 列出候选,等你选定再做后续动作。一条都没搜到时它会告诉你没搜到,并请你补充线索, 不会自己换关键词反复重试。
有些类型搜得到但读不了正文:ppt / journal / collect / mind / flow / pdf。
整套能力里都没有读它们正文的方法,助手会直接说明,并给你文档链接让你在客户端打开。
改名 / 加成员 / 改规则这三件事只对四种在线文档有效,上面那几种类型不适用。
微盘不是在线文档。 drive.weixin.qq.com 开头的是微盘,本域的四个方法对它都不适用——
微盘文件的改名走 14 微盘。
文档链接可以给你,内部编号不给。 助手展示文档时用「文档名 + 可点击链接」的形式, 提创建者时用姓名。文档的内部标识、创建者的内部标识都不会出现在回复里。
三条通用边界在本域怎么体现
- 只能改它自己建的东西——你自己建的文档,助手改不了名、也改不了权限。 (实测的重命名是在助手自己建的 4 份测试文档上做的。)碰到这类请求, 它会说明边界并建议你在客户端操作。
- 能力按品类逐项开通——文档是独立品类(实测账号是后来单独补开的)。 未开通时助手会把官方开通指引原样转给你,然后停下,不重试。
- 危险动作先问你——加成员和改加入规则是本域两个高风险写入, 而且涉及企业外时要单独再同意一次。改名是低风险,直接执行(改错了再改回来即可)。 见 99 风险与确认。