wecomteam/wecom-cli

wecomcli-doc-manage

企业微信文档公共管理:搜索文档(最近浏览/创建)、文档改名、添加文档成员权限、设置文档加入规则。适用于所有文档类型(doc文档 / 在线表格 / 智能表格 / 智能文档)。新建或导入doc文档请使用 wecomcli-doc;新建或导入在线表格请使用 wecomcli-sheet;智能表格内容 CRUD 请使用 wecomcli-smartsheet;生成智能文档请使用 wecomcli-smartpage。"看过哪些文档/浏览历史"类需求走本技能,不要走 wecomgetusermemory。

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

执行任何 wecom-cli 命令前,必须先读取并完成 wecomcli-shared 技能的公共前置检查。

核心概念

  • 四种文档类型:在线文档 doc、在线表格 sheet、智能表格 smartsheet、智能文档 smartpagedoc_type 枚举在多接口中复用。
  • 搜索接口额外支持的类型:收集表 collect、PPT ppt、脑图 mind、流程图 flow、汇报 journal、PDF pdf。这些类型仅在「搜索文档」接口的 doc_types 过滤中可用,其他接口(改名、权限、加入规则等)不适用。

适用范围

适用

  • 仅支持搜索 doc文档 / 在线表格 / 智能表格 / 智能文档 / PPT / 收集表 / 脑图 / 流程图 / 汇报 / PDF 文档类型
  • 仅支持修改 doc文档 / 在线表格 / 智能表格 / 智能文档 的名称
  • 仅支持添加 doc文档 / 在线表格 / 智能表格 / 智能文档 的成员权限
  • 仅支持设置 doc文档 / 在线表格 / 智能表格 / 智能文档 的加入规则

接口路由表

路由表第二列若是 references/xxx.md 链接 → 必须先用 read 工具读完该文件,再构造命令。

用户意图参考位置
搜索文档(包含最近浏览/创建)见下方「搜索文档」
修改文档名+names-update
添加文档成员 / 改权限+members-update
设置链接加入规则+rules-update

接口详述

搜索文档

按关键词与过滤条件(类型 / 创建者 / 浏览者-成员 / 时间窗 / 排序)搜索文档

关于"浏览者"与"成员":在本接口的搜索语义下二者等价——visitor_userids 命中的是"该 userid 作为浏览者/成员/相关者"的文档,用来表达"包含 X"、"X 参与的"、"与 X 相关的"、"X 作为成员的"均可。注意权限约束:无论传谁的 userid,最终结果只会返回当前调用者本人有权限访问的文档;他人有权限但你没权限的文档不会出现在结果中,因此本接口不能用于"窥探他人独占的文档列表"。

命令

bash
wecom-cli doc search --json '<JSON 参数>'

参数

字段类型必填默认值语义
keywordsstring[]关键词数组,OR 关系。仅按其他条件过滤时传空数组 []
search_scopestringtitle_content搜索范围枚举:title(仅标题) / title_content(标题和内容,默认) / content(仅内容)
doc_typesstring[]限定类型,取值为 doc / sheet / smartsheet / smartpage / collect / ppt / mind / flow / journal / pdf 的子集
creator_useridsstring[]限定创建者 userid 列表(典型:传当前用户 userid 查"我最近创建")
visitor_useridsstring[]限定"浏览者 / 成员" userid 列表
created_after / created_beforestring创建时间窗,YYYY-MM-DD HH:mm:ss
opened_after / opened_beforestring最近打开时间窗,YYYY-MM-DD HH:mm:ss
sort_bystringbest_match排序枚举:best_match(默认) / create_time(创建时间) / modify_time(修改时间)
limitint10返回上限,不超过 100
cursorstring分页游标;首次传空,后续取上页 next_cursor

返回

字段类型说明
has_moreboolean是否还有下一页;true 时用 next_cursor 续取
next_cursorstring下一页游标
docsarray结果文档列表,每项字段见下表

docs[] 单条文档字段:

字段类型说明
docidstring文档唯一 ID
doc_namestring文档名
doc_typestring文档类型
urlstring可访问的文档链接
creator_useridstring文档创建者 userid
create_time / modify_timestring创建 / 最近修改时间
title_highlight / text_highlightstring[]命中高亮片段

使用规则

  • `ppt` / `journal` / `collect` / `mind` / `flow` 目前没有任何下游 skill 或 CLI 能读取正文,命中这些类型且用户要看内容时,直接告知暂不支持读取,引导用户用 doc_url 在企业微信客户端内打开查看。
  • 参数组合按意图分派(含必填约束):先判定用户意图,再按对应分支组装参数。禁止所有参数均不传或仅传空值(如 {})。
  • (a) 按内容找 → keywords(必填,不得为空数组) + search_scope=title_content + sort_by=best_match
  • (b) "我最近浏览 / 与我相关 / 我作为成员 / 包含我的文档" → visitor_userids=[<当前 userid>](必填,不得为空) + sort_by=best_match + opened_after(默认近 7 天)
  • (c) "包含某人为成员 / 某人参与 "(他人)→ visitor_userids=[<他人 userid>](必填,先经 wecomcli-contact 由姓名解析)+ sort_by=best_match必须提醒用户:只会返回当前调用者有权限访问的那部分文档,对方独占且你无权访问的文档不会出现。
  • (d) "我最近创建" → creator_userids=[<当前 userid>](必填,不得为空) + created_* 时间窗 + sort_by=create_time + created_after(默认近 7 天)
  • 若意图不属于 (b)(c)(d),一律按 (a) 处理,keywords 必填。
  • `userid`(前缀 `wo`):用户提供的是姓名时通过 读取 wecomcli-contact 技能 解析为 userid;禁止把姓名当 userid 拼接,禁止凭记忆或猜测编造。
  • `keywords` 必须先分词再组装:当用户给出自然语言 query(如 "帮我找下产品的待办tool文档")时,禁止把整段 query 直接当成单个 keyword 传入。处理流程:
  1. 对 query 做中英文分词,得到 token 列表(中文按词切分,英文按空格 / 大小写边界切分),并剔除"帮我"、"找下"、"文档"、"的"等口语化 / 通用 / 停用词。
  2. 判定"必传 token":从剩余 token 中挑出真正承载用户检索意图的核心词(通常是专有名词、产品名、功能名等强区分度词),其余作为辅助 token。
  3. 组装 keywords 数组:第 1 个元素是所有"必传 token"用空格拼接的串(只拼必传的,不要把全部 token 都塞进去),后续元素依次是各单独 token(必传 + 辅助)。例如 query "帮我找下产品的待办tool文档",分词后必传 token 为 ["待办", "tool"],则 keywords = ["待办 tool", "待办", "tool"]
  4. 若必传 token 只有 1 个,第 1 个元素就是该 token 本身,不必重复追加。例如 query "周报"keywords = ["周报"]
  • 多候选必须让用户确认:结果 >1 条时,按下方「结果展示规范」展示候选列表,等用户选定后再继续后续动作。
  • 无候选必须追问用户:结果 =0 条时,告知用户当前没有搜到文档,追问用户是否可以提供更多的关键词线索。

示例:用户 query "帮我找下产品的待办tool文档"

剔除"帮我 / 找下 / 的 / 文档"等通用词,剩余 ["产品", "待办", "tool"];判定核心检索意图为 "待办""tool",故必传 token 为 ["待办", "tool"]"产品" 作为辅助 token。

bash
wecom-cli doc search --json '{"keywords":["待办 tool","待办","tool","产品"],"search_scope":"title_content","limit":10}'

结果展示规范

向用户展示搜索结果(含单条与多候选)时严格遵守:

  • 用 markdown 无序列表逐条展示,禁止使用表格——最多展示10条结果,即使只有 2~3 条结果也用列表;表格会强制四列对齐,反而把 ID / 时间等噪声字段一起暴露。
  • 文档名必须是可点击链接:每条首行写成 - [doc_name](url)url 取接口返回的 url 字段原样使用。
  • 默认不展示创建者creator_userid 是内部 ID,禁止以任何形式输出给用户。

跨技能依赖

依赖技能典型协作场景数据流向
wecomcli-contact添加文档成员时用户只给姓名,需先解析为 useridwecomcli-contactcontact users search → 返回 userid → 本 skill 的 doc members update 接口

需要读取、打开搜索到的docid

拿到 docid 只是第一步。读取/打开文档正文是另一类技能,必须按doc_types,先 read 对应"内容技能"的 SKILL.md,再按其文档发命令:

  • doc(在线文档)→ wecomcli-doc 技能
  • smartpage(智能文档)→ wecomcli-smartpage 技能
  • sheet(在线表格)→ wecomcli-sheet 技能
  • smartsheet(智能表格)→ wecomcli-smartsheet 技能

严禁直接拼"读正文"的命令;首次读取正文前必须 read 上述对应内容技能的 SKILL.md,命令一律以该 SKILL.md 为准。

搜索多候选需确认 / 搜索意图类确认 / 必填参数(docid、权限角色等)缺失时,用简洁自然语言仅追问缺失或有歧义的信息;有候选项时在文字中列出供用户选择,不得自行猜测。
from this repository

More skills

All skills
wecomteam
Community

wecomcli-calendar

企业微信日程管理。当用户需要预约日程、预订会议室、查看/更新/取消日程或查忙闲时触发。本技能负责『日程』——即不含在线会议链接的安排(也涵盖纯线下面对面碰头);若用户要的是『在线会议』(含会议号/入会链接、可远程或视频参会),改用 wecomcli-meeting 技能。用户仅说'开会/约个会/某会'等、未明确要创建的是日程还是在线会议时,必须先读取本技能并按其中的消歧流程向用户追问确认后再处理,不可臆断直接创建。

installs
7
GitHub stars
3K
Updated
25 ago
wecomteam
Community

wecomcli-contact

使用 wecom-cli 按姓名、拼音、英文名或别名搜索企业微信通讯录中的人员,并查询匹配人员的 userid、部门和职务。适用于查找联系人、区分同名人员、获取用户 userid,以及列出全部同名人员。

installs
7
GitHub stars
3K
Updated
25 ago
wecomteam
Community

wecomcli-disk

企业微信微盘(Disk / 网盘)文件操作技能。承接"微盘 / 网盘"里的文件列出、搜索、读取元信息、上传、下载、重命名、新建文件夹操作。用户明确提到"微盘"/"网盘"/"共享空间"时必须先读取本技能获取完整指引,不得凭记忆处理。用户说"上传到微盘"、"帮我在微盘里搜一下 xxx"、"微盘那个 PPT 在哪"、"下载微盘那个文件"、"把微盘那个文件重命名成 xxx"、或直接给出 https://drive.weixin.qq.com/s?k=... 形式的微盘文件链接时使用本技能。与 wecomcli-doc / wecomcli-sheet / wecomcli-smartsheet / wecomcli-smartpage 的区别:本技能处理微盘里所有文件(含在线文档)的搜索/列表/基础信息/位置/路径/重命名等文件级操作;在线文档(doc/sheet/smartsheet/smartpage 类型)的内容读写走对应文档技能,不由本技能接管。当用户问「这个文档在微盘哪里」或问某文件在微盘的位置时,由本技能用 get 返回空间名/文件夹名/路径等元信息。

installs
7
GitHub stars
3K
Updated
25 ago
wecomteam
Community

wecomcli-doc

企微 doc 内容操作技能,包含新建在线文档、导入、读取、追加、覆盖写入等功能。仅当用户明确指定 'doc'、'docx'、'word'、'在线文档'、'office文档',或提供 https://doc.weixin.qq.com/doc/xxx 链接时触发。本技能不处理未指明类型的“文档”请求;凡是“创建文档 / 写文档 / 整理成文档 / 输出到文档”等泛化表达,默认都必须路由到 wecomcli-smartpage(智能文档),本技能不得抢占。若请求包含字段、记录、筛选、排序、统计、分组等结构化数据语义,严禁用 doc + markdown 静态表格变通替代,应考虑使用智能文档或者智能表格。公共管理操作请使用 wecomcli-doc-manage;在线表格操作请使用 wecomcli-sheet;智能表格操作请使用 wecomcli-smartsheet。

installs
7
GitHub stars
3K
Updated
25 ago