Files
market/agents/wecom-assistant/docs/06-会议.md
Yige aec2e7c28b feat: 新增企业微信助手 Agent,并修正 wecom-cli 条目 ref 漂移 (#112)
## 概述 / 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)
- 消息发送、通讯录解析、微盘列表、邮件搜索、文档搜索、会议列表、智能表格创建均已实测通过
- 测试数据已全部清理,未污染真实账号

**尚未实测**:群聊历史(机器人未开通该品类)。相关文档已明确标注验证状态,未实测的能力不写「实际效果」段落。
2026-09-03 03:50:00 -04:00

7.4 KiB
Raw Blame History

会议

管带会议号和入会链接的在线会议:约会、查会、改会、取消,以及会后取智能纪要、会议待办和逐字转写原文。 和 05 日程 的分界只有一条——有没有入会链接。没有链接的安排(哪怕订了会议室的线下会) 都归日程那边。

你可以怎么说

「开个视频会议,明天下午 3 点,叫上张三」 「查一下我明天的会议」 「搜下项目评审会」 「帮我总结下昨天那个会」 「把会上的原话发我」 「看下这个会有哪些待办」

📋 验证状态

状态
按时间范围列会议 已实测(返回 0 场会议——账号里当时确实没有会议)
创建会议 ⚠️ 未实测
更新 / 取消会议 ⚠️ 未实测
按关键词搜会议 ⚠️ 未实测
取会议详情与参会人 ⚠️ 未实测
读智能纪要 / 会议待办 ⚠️ 未实测
拉逐字转写原文 ⚠️ 未实测
完整链路(你说一句话 → 助手自动约完) ⚠️ 未实测

实测记录(命令层,人工在真实账号上执行):

wecom-cli meeting list      # 通过,返回 0 个会议

只验证了「接口通、能返回」,没有验证任何会议内容——因为账号里当时没有会议数据, 也没有创建真实会议去打扰他人。所以本页不写「实际效果」,也不虚构任何纪要、转写或参会人示例。

另有一条界面内的行为实测(不是命令层):让助手「帮我约个会」时, 它触发的消歧问句逐字正确——需要创建日程还是会议?(请回复:日程 / 会议)。 这条与 05 日程 共用同一句固定措辞。

能力清单

能做什么 命令 风险
按时间范围列会议 wecom-cli meeting list 读取
按关键词搜会议 wecom-cli meeting search 读取
批量取会议详情(含参会人、状态、纪要、待办) wecom-cli meeting get 读取
拉会议逐字转写原文 wecom-cli meeting original get 读取(隐私高度敏感
创建在线会议 wecom-cli meeting create 高风险写入
更新会议(改时间 / 主题 / 加减人 / 换会议室) wecom-cli meeting update 高风险写入
取消会议 wecom-cli meeting cancel 高风险写入

三个写方法的后果:创建会向全体参会人发出邀请并生成入会链接(同时自动建一条对应日程); 更新会通知全体参会人、被移除的人直接失去这场会;取消会通知所有人并作废入会链接,无法撤回

忙闲查询和会议室查询不在这里——那两件事归 05 日程 本域要订会议室时会反向调用那边。你不需要记这个分工。

注意事项

创建时那句问话是固定的。 你只说「开个会 / 约个会 / xx 会」而没说清是日程还是会议, 助手会逐字问:需要创建日程还是会议?(请回复:日程 / 会议) 出现「入会链接 / 会议号 / 视频会议 / 远程参会 / 外地同事接入」这些信号时才直接建会议,不问。 「同时线下开、外地同事远程接入」算会议——建会议会自动生成对应日程,不会重复建两条。

查询时它不问,两边都查。 你说「最近有什么会」,助手会同时查会议和日程再合并, 不会因为会议这边已经有结果就跳过日程那边。反过来,你明确说「在线会议」时它只查会议; 查不到再兜底去日程查一把,命中就说明「这是一条日程,未关联在线会议链接」。

改约禁止拆成「取消 + 新建」。 和日程同理,而且在会议这边后果更直接: 入会链接重建不出来,拆开一次,参会人手里的旧链接就全作废了。即使你说「先取消再重约」, 助手也会走「更新」。

总结会议有两条路,取决于你有没有提要求。

  • 只说「总结下这个会」「纪要发我」「看下这个会的待办」——助手优先返回企业微信官方现成的智能纪要或待办 不再去拉逐字转写。
  • 带了任何自定义要求——「按决策点整理」「列出每人发言重点」「重点讲预算那部分」「写成正式纪要」—— 助手会跳过现成纪要,直接拉全部转写原文重新加工。官方纪要是固定视角的成品,满足不了定制要求。

官方纪要不可用(没权限或内容为空)时,也会回落到转写原文。两边都没有时, 助手会如实说「该会议暂无智能纪要,也没有转写原文(可能未开启转写、会议未开始或无发言记录)」—— 不会编一段出来

「原话」就是原话。 你要「逐字记录 / 把原话发我」时,助手会保留时间戳和说话人的逐行格式原样输出 不总结、不改写、不裁剪。只有当它是作为总结素材时才会被加工。

转写原文属于隐私高度敏感内容:只在你明确索取时才拉,不主动拉,也不会转发给会议之外的人。

周期(重复)会议完全不支持——创建、更新、取消都做不了,助手会直接说明并引导到企业微信客户端, 不会用「批量建多场单次会议」来变通

接受 / 拒绝会议邀请RSVP也不支持。

单场超过 24 小时的会议不支持,助手会直接拒绝,不会自作主张拆成好几场。 你确实需要多天安排时,得自己说清怎么拆。

加人时的忙闲判断和建会时相反。 建会时会把你自己也算进去查忙闲(否则会约到自己已占用的时段); 但给一场已有的会议加人时,只查新增的人——你和老参会人正被这场会占着,必然显示「忙」, 算进去就会误报冲突。这一条你不用管,但知道了就不会觉得它前后不一致。

会议号和入会链接不会出现在回复里。 创建成功后,助手只回三行:主题、时间、参会人。 需要入会链接时,去企业微信里看那条会议。

三条通用边界在本域怎么体现

  1. 只能改它自己建的东西——别人发起的会议,助手改不了也取消不了。 它不会预先按「是不是你建的」拦你,而是直接执行,拿到权限错误后如实告诉你,并建议联系发起人。
  2. 能力按品类逐项开通——会议是独立品类(实测账号是后来单独补开的)。未开通时助手会把官方 开通指引原样转给你,然后停下,不重试。
  3. 危险动作先问你——建、改、取消三个动作全是高风险写入,都会复述 「主题、时间、涉及哪些人、链接是否作废」并等你明确同意。见 99 风险与确认

相关

  • 05 日程——不带入会链接的安排;忙闲查询与会议室查询也在那边
  • 02 通讯录——拉人进会议前先在这里把人名解析出来
  • 07 待办——会议纪要里的行动项要落成待办时
  • 08 邮件——通过邮件发会议邀请是另一条路(只有你明确提到「邮件」时才走那边)
  • 99 风险与确认——三个写方法的确认规则