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:
127
agents/wecom-assistant/docs/14-微盘.md
Normal file
127
agents/wecom-assistant/docs/14-微盘.md
Normal file
@@ -0,0 +1,127 @@
|
||||
# 微盘
|
||||
|
||||
企业微信微盘(网盘)的文件操作:找文件、拿文件、放文件、理顺文件名和目录。
|
||||
微盘里装的既有离线的二进制文件(Word/Excel/PPT/PDF/图片/音视频),也有在线协作文档的入口——
|
||||
**这两类的处理方式完全不同**,是这一域最需要分清的一件事。
|
||||
|
||||
## 你可以怎么说
|
||||
|
||||
> 「微盘里搜一下季度汇报」
|
||||
> 「那个 PPT 在微盘哪个位置?」
|
||||
> 「把这个文件传到微盘」
|
||||
> 「下载微盘那个文件,看看里面写了什么」
|
||||
> 「把微盘那个文件改个名」
|
||||
> 「我最近看过哪些微盘文件?」
|
||||
|
||||
## 📋 验证状态
|
||||
|
||||
| 项 | 状态 |
|
||||
|---|---|
|
||||
| 列出最近浏览过的文件 | ✅ **已实测**:返回了真实文件 |
|
||||
| 搜索文件 / 文件夹 / 共享空间 | ⚠️ **未实测** |
|
||||
| 读文件元信息(在哪个空间、多大、谁建的) | ⚠️ **未实测** |
|
||||
| 下载文件到本地 | ⚠️ **未实测** |
|
||||
| 上传本地文件 | ⚠️ **未实测** |
|
||||
| 新建文件夹 | ⚠️ **未实测** |
|
||||
| 重命名文件 | ⚠️ **未实测** |
|
||||
| 完整链路(你说一句话 → 助手自动找到并处理完) | ⚠️ 未实测 |
|
||||
|
||||
**实测记录**(命令层,人工在真实账号上执行):
|
||||
|
||||
```bash
|
||||
wecom-cli disk files list # ✅ 返回真实文件
|
||||
```
|
||||
|
||||
**只验证了「能列出真实文件」这一步**,具体文件内容不在这里公开。
|
||||
搜索、上传、下载、改名一条都没跑——所以本页不写「实际效果」,也不虚构任何文件名或返回值。
|
||||
下面「能力清单」与「注意事项」来自接口定义与技能文档,是**设计意图,不是实测结论**。
|
||||
|
||||
## 能力清单
|
||||
|
||||
> 除「列出最近浏览」外均**未实测**。
|
||||
|
||||
| 能做什么 | 命令 | 风险 |
|
||||
|---|---|---|
|
||||
| 列出最近浏览过的文件 | `wecom-cli disk files list` | 读取 |
|
||||
| 搜索文件 / 文件夹 / 共享空间 | `wecom-cli disk files search` | 读取 |
|
||||
| 读一个文件的元信息 | `wecom-cli disk files get` | 读取 |
|
||||
| 下载文件到本地 | `wecom-cli disk files download` | 读取(只写你自己的本地磁盘) |
|
||||
| 上传本地文件到微盘 | `wecom-cli disk files upload` | 低风险写入 |
|
||||
| 新建文件夹 | `wecom-cli disk folders create` | 低风险写入 |
|
||||
| 重命名文件 | `wecom-cli disk files rename` | 低风险写入(**共享空间里的文件升为高风险**) |
|
||||
|
||||
## 注意事项
|
||||
|
||||
**共享空间里的重命名,全体协作者立刻可见。**
|
||||
改自己个人空间里的文件名是小事,改回去就行;但**共享空间里的文件一改名,
|
||||
这个空间的所有人看到的都是「文件凭空改名了」**。所以助手会先查这个文件在哪个空间——
|
||||
|
||||
- 在共享空间 → **先复述再改**:「把共享空间『XX』里的『旧名』改名为『新名』」,等你同意。
|
||||
- **判不准是不是共享空间时,一律按共享空间处理**(保守升级,不赌)。
|
||||
|
||||
上传到共享空间同理会被别人看到。上传本身仍是低风险(新增文件,可以再删),
|
||||
但**目标位置不明确时助手会先问清楚传到哪里,不会默认往共享空间塞**。
|
||||
|
||||
**在线文档下载不了,只能给你链接。**
|
||||
微盘搜索的结果里混着两类东西:
|
||||
|
||||
| 类型 | 怎么处理 |
|
||||
|---|---|
|
||||
| 离线文件(Word/Excel/PPT/PDF/图片/音视频) | 能下载到本地,助手可以读给你听 |
|
||||
| 在线协作文档(在线文档 / 在线表格 / 智能表格 / 智能文档) | 正文在云端,**下载不了**。助手会把它转给对应的能力去读正文 |
|
||||
| `ppt` / `journal` / `collect` / `mind` / `flow` | **整套能力都读不了正文**,助手会给你链接,引导你在客户端打开 |
|
||||
|
||||
**微盘的分享链接是可以给你的**,助手会正常展示,你也可以直接把它发出去。
|
||||
|
||||
**文件名不是文件标识。** 你只给了文件名或关键词时,助手会先搜出来拿到内部标识再操作,
|
||||
**不会把文件名当标识硬拼进命令**。
|
||||
|
||||
**搜索是有界的。** 一组条件搜完必要时再调一次,2~3 轮还没结果就停下来如实告诉你「没搜到」,
|
||||
并请你补更准的关键词、类型或创建者——**不会无限换词硬搜**。
|
||||
停下时它会说清楚是「搜不到文件」还是「搜不到这个空间」。
|
||||
|
||||
**没有时间范围这个搜索条件。** 你说「最近三天上传的」时,助手会按修改时间倒序拉,
|
||||
再自己筛出你要的那一段,而不是伪造一个不存在的时间参数。
|
||||
|
||||
**重名会让你选。** 搜出多个同名文件、文件夹或空间时,助手会用「序号 + 名称 + 路径 + 时间」
|
||||
让你挑,**不会随手选第一个**。
|
||||
|
||||
**类型说不清就两种都搜。** 你说「Excel」而没说是在线表格还是本地 xlsx 时,助手会两种类型一起搜,
|
||||
免得漏掉。它也不会把「Excel 报告」整个当成关键词——会拆成「关键词=报告」+「类型=表格」。
|
||||
|
||||
**「路径」才是层级真相。** 空间名和文件夹名同名时不一定是父子关系,可能是平级。
|
||||
助手判断层级看的是完整路径。
|
||||
|
||||
**这些做不到**(会直接告诉你去客户端):
|
||||
|
||||
- **移动 / 删除 / 复制文件**;**删除或重命名文件夹**;调整目录树
|
||||
- 创建 / 删除共享空间,修改空间成员与设置
|
||||
- 修改分享权限、生成或撤销分享链接、设置访问密码与有效期
|
||||
- 版本管理(看历史版本、恢复旧版、比对)
|
||||
- 覆盖上传 / 秒传 / 断点续传(要替换就重新传一份新的)
|
||||
- **监视微盘变更**——它**不会**跟你说「有新文件我告诉你」,需要你自己回头再问
|
||||
- **给机器人授予某个空间的权限 / 把机器人加进共享空间成员**——微盘**没有这个功能**,
|
||||
客户端也做不到。助手不会提这类建议,也不会引导你「联系空间管理员给机器人授权」
|
||||
|
||||
**域名分不清就全错。** `drive.weixin.qq.com` 才是微盘;`doc.weixin.qq.com` / `page.weixin.qq.com`
|
||||
是在线文档,把在线文档的链接丢给微盘能力一定失败。在线文档的改名、加成员归
|
||||
[13 文档管理](13-文档管理.md)。
|
||||
|
||||
### 三条通用边界在本域怎么体现
|
||||
|
||||
1. **只能改它自己建的东西**——你自己上传的文件,助手**改不了名**。
|
||||
它会说明边界并建议你在客户端操作。另外整个微盘域**本来就没有删除和移动能力**,
|
||||
这两件事无论文件是谁传的都做不了。
|
||||
2. **能力按品类逐项开通**——微盘是独立品类(实测账号是后来单独补开的)。
|
||||
未开通时助手会把官方开通指引原样转给你,然后停下,不重试。
|
||||
3. **危险动作先问你**——**共享空间里的重命名会先问你**(这是个按参数升级的例子:
|
||||
同一个动作,在个人空间不问,在共享空间就问)。上传到位置不明确时也会先问清楚传到哪。
|
||||
见 [99 风险与确认](99-风险与确认.md)。
|
||||
|
||||
## 相关
|
||||
|
||||
- [13 文档管理](13-文档管理.md)——在线文档的搜索、改名、加成员、改权限
|
||||
- [09 在线文档](09-在线文档.md) / [10 在线表格](10-在线表格.md) / [11 智能表格](11-智能表格.md) / [12 智能文档](12-智能文档.md)——微盘里命中在线文档、你又想读正文时,会转到这几篇对应的能力
|
||||
- [15 媒体文件](15-媒体文件.md)——本地文件与企业微信之间的搬运(**传微盘不需要经过它**)
|
||||
- [02 通讯录](02-通讯录.md)——按「谁上传的」搜文件时,先在这里把人名解析出来
|
||||
- [99 风险与确认](99-风险与确认.md)——按参数升级的判定规则
|
||||
Reference in New Issue
Block a user