mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-09-05 18:43:51 +08:00
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) - 消息发送、通讯录解析、微盘列表、邮件搜索、文档搜索、会议列表、智能表格创建均已实测通过 - 测试数据已全部清理,未污染真实账号 **尚未实测**:群聊历史(机器人未开通该品类)。相关文档已明确标注验证状态,未实测的能力不写「实际效果」段落。
This commit is contained in:
121
agents/wecom-assistant/docs/06-会议.md
Normal file
121
agents/wecom-assistant/docs/06-会议.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# 会议
|
||||
|
||||
管带**会议号和入会链接**的在线会议:约会、查会、改会、取消,以及会后取智能纪要、会议待办和逐字转写原文。
|
||||
和 [05 日程](05-日程.md) 的分界只有一条——**有没有入会链接**。没有链接的安排(哪怕订了会议室的线下会)
|
||||
都归日程那边。
|
||||
|
||||
## 你可以怎么说
|
||||
|
||||
> 「开个视频会议,明天下午 3 点,叫上张三」
|
||||
> 「查一下我明天的会议」
|
||||
> 「搜下项目评审会」
|
||||
> 「帮我总结下昨天那个会」
|
||||
> 「把会上的原话发我」
|
||||
> 「看下这个会有哪些待办」
|
||||
|
||||
## 📋 验证状态
|
||||
|
||||
| 项 | 状态 |
|
||||
|---|---|
|
||||
| 按时间范围列会议 | ✅ **已实测**(返回 0 场会议——账号里当时确实没有会议) |
|
||||
| 创建会议 | ⚠️ **未实测** |
|
||||
| 更新 / 取消会议 | ⚠️ **未实测** |
|
||||
| 按关键词搜会议 | ⚠️ **未实测** |
|
||||
| 取会议详情与参会人 | ⚠️ **未实测** |
|
||||
| 读智能纪要 / 会议待办 | ⚠️ **未实测** |
|
||||
| 拉逐字转写原文 | ⚠️ **未实测** |
|
||||
| 完整链路(你说一句话 → 助手自动约完) | ⚠️ 未实测 |
|
||||
|
||||
**实测记录**(命令层,人工在真实账号上执行):
|
||||
|
||||
```bash
|
||||
wecom-cli meeting list # 通过,返回 0 个会议
|
||||
```
|
||||
|
||||
**只验证了「接口通、能返回」**,没有验证任何会议内容——因为账号里当时没有会议数据,
|
||||
也没有创建真实会议去打扰他人。所以本页不写「实际效果」,也不虚构任何纪要、转写或参会人示例。
|
||||
|
||||
**另有一条界面内的行为实测**(不是命令层):让助手「帮我约个会」时,
|
||||
它触发的消歧问句逐字正确——`需要创建日程还是会议?(请回复:日程 / 会议)`。
|
||||
这条与 [05 日程](05-日程.md) 共用同一句固定措辞。
|
||||
|
||||
## 能力清单
|
||||
|
||||
| 能做什么 | 命令 | 风险 |
|
||||
|---|---|---|
|
||||
| 按时间范围列会议 | `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 日程](05-日程.md),
|
||||
本域要订会议室时会反向调用那边。你不需要记这个分工。
|
||||
|
||||
## 注意事项
|
||||
|
||||
**创建时那句问话是固定的。** 你只说「开个会 / 约个会 / xx 会」而没说清是日程还是会议,
|
||||
助手会**逐字**问:`需要创建日程还是会议?(请回复:日程 / 会议)`
|
||||
出现「入会链接 / 会议号 / 视频会议 / 远程参会 / 外地同事接入」这些信号时才直接建会议,不问。
|
||||
**「同时线下开、外地同事远程接入」算会议**——建会议会自动生成对应日程,不会重复建两条。
|
||||
|
||||
**查询时它不问,两边都查。** 你说「最近有什么会」,助手会同时查会议和日程再合并,
|
||||
**不会因为会议这边已经有结果就跳过日程那边**。反过来,你明确说「在线会议」时它只查会议;
|
||||
查不到再兜底去日程查一把,命中就说明「这是一条日程,未关联在线会议链接」。
|
||||
|
||||
**改约禁止拆成「取消 + 新建」。** 和日程同理,而且在会议这边后果更直接:
|
||||
**入会链接重建不出来**,拆开一次,参会人手里的旧链接就全作废了。即使你说「先取消再重约」,
|
||||
助手也会走「更新」。
|
||||
|
||||
**总结会议有两条路,取决于你有没有提要求。**
|
||||
|
||||
- 只说「总结下这个会」「纪要发我」「看下这个会的待办」——助手优先返回企业微信**官方现成的智能纪要或待办**,
|
||||
不再去拉逐字转写。
|
||||
- 带了任何自定义要求——「按决策点整理」「列出每人发言重点」「重点讲预算那部分」「写成正式纪要」——
|
||||
助手会**跳过现成纪要,直接拉全部转写原文**重新加工。官方纪要是固定视角的成品,满足不了定制要求。
|
||||
|
||||
官方纪要不可用(没权限或内容为空)时,也会回落到转写原文。两边都没有时,
|
||||
助手会如实说「该会议暂无智能纪要,也没有转写原文(可能未开启转写、会议未开始或无发言记录)」——
|
||||
**不会编一段出来**。
|
||||
|
||||
**「原话」就是原话。** 你要「逐字记录 / 把原话发我」时,助手会保留时间戳和说话人的逐行格式**原样输出**,
|
||||
不总结、不改写、不裁剪。只有当它是作为总结素材时才会被加工。
|
||||
|
||||
**转写原文属于隐私高度敏感内容**:只在你明确索取时才拉,不主动拉,也不会转发给会议之外的人。
|
||||
|
||||
**周期(重复)会议完全不支持**——创建、更新、取消都做不了,助手会直接说明并引导到企业微信客户端,
|
||||
**不会用「批量建多场单次会议」来变通**。
|
||||
|
||||
**接受 / 拒绝会议邀请(RSVP)也不支持。**
|
||||
|
||||
**单场超过 24 小时的会议不支持**,助手会直接拒绝,**不会自作主张拆成好几场**。
|
||||
你确实需要多天安排时,得自己说清怎么拆。
|
||||
|
||||
**加人时的忙闲判断和建会时相反。** 建会时会把**你自己也算进去**查忙闲(否则会约到自己已占用的时段);
|
||||
但给一场已有的会议加人时,只查**新增的人**——你和老参会人正被这场会占着,必然显示「忙」,
|
||||
算进去就会误报冲突。这一条你不用管,但知道了就不会觉得它前后不一致。
|
||||
|
||||
**会议号和入会链接不会出现在回复里。** 创建成功后,助手只回三行:主题、时间、参会人。
|
||||
需要入会链接时,去企业微信里看那条会议。
|
||||
|
||||
### 三条通用边界在本域怎么体现
|
||||
|
||||
1. **只能改它自己建的东西**——别人发起的会议,助手**改不了也取消不了**。
|
||||
它不会预先按「是不是你建的」拦你,而是直接执行,拿到权限错误后如实告诉你,并建议联系发起人。
|
||||
2. **能力按品类逐项开通**——会议是独立品类(实测账号是后来单独补开的)。未开通时助手会把官方
|
||||
开通指引原样转给你,然后停下,不重试。
|
||||
3. **危险动作先问你**——建、改、取消三个动作**全是高风险写入**,都会复述
|
||||
「主题、时间、涉及哪些人、链接是否作废」并等你明确同意。见 [99 风险与确认](99-风险与确认.md)。
|
||||
|
||||
## 相关
|
||||
|
||||
- [05 日程](05-日程.md)——不带入会链接的安排;**忙闲查询与会议室查询也在那边**
|
||||
- [02 通讯录](02-通讯录.md)——拉人进会议前先在这里把人名解析出来
|
||||
- [07 待办](07-待办.md)——会议纪要里的行动项要落成待办时
|
||||
- [08 邮件](08-邮件.md)——**通过邮件**发会议邀请是另一条路(只有你明确提到「邮件」时才走那边)
|
||||
- [99 风险与确认](99-风险与确认.md)——三个写方法的确认规则
|
||||
Reference in New Issue
Block a user