Summary
企业微信文档公共管理:搜索文档(最近浏览/创建)、文档改名、添加文档成员权限、设置文档加入规则。适用于所有文档类型(doc文档 / 在线表格 / 智能表格 / 智能文档)。新建或导入doc文档请使用 wecomcli-doc;新建或导入在线表格请使用 wecomcli-sheet;智能表格内容 CRUD 请使用…
wecomteam/wecom-cli
企业微信文档?
npx skills add wecomteam/wecom-cli --skill wecomcli-doc-manage
企业微信文档公共管理:搜索文档(最近浏览/创建)、文档改名、添加文档成员权限、设置文档加入规则。适用于所有文档类型(doc文档 / 在线表格 / 智能表格 / 智能文档)。新建或导入doc文档请使用 wecomcli-doc;新建或导入在线表格请使用 wecomcli-sheet;智能表格内容 CRUD 请使用…
Other skills from wecomteam/wecom-cli · top by installs.
npx skills add wecomteam/wecom-cli
Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.
main
Parsed from SKILL.md frontmatter.
Files included with this skill beyond the listing page.
SKILL.md
11,221 B
SUMMARY.md
558 B
执行任何
wecom-cli命令前,必须先读取并完成wecomcli-shared技能的公共前置检查。
doc、在线表格 sheet、智能表格 smartsheet、智能文档 smartpage。doc_type 枚举在多接口中复用。collect、PPT ppt、脑图 mind、流程图 flow、汇报 journal、PDF pdf。这些类型仅在「搜索文档」接口的 doc_types 过滤中可用,其他接口(改名、权限、加入规则等)不适用。适用:
路由表第二列若是 references/xxx.md 链接 → 必须先用 read 工具读完该文件,再构造命令。
| 用户意图 | 参考位置 |
|---|---|
| 搜索文档(包含最近浏览/创建) | 见下方「搜索文档」 |
| 修改文档名 | [+names-update](references/doc-names-update.md) |
| 添加文档成员 / 改权限 | [+members-update](references/doc-members-update.md) |
| 设置链接加入规则 | [+rules-update](references/doc-rules-update.md) |
按关键词与过滤条件(类型 / 创建者 / 浏览者-成员 / 时间窗 / 排序)搜索文档
关于"浏览者"与"成员":在本接口的搜索语义下二者等价——
visitor_userids命中的是"该 userid 作为浏览者/成员/相关者"的文档,用来表达"包含 X"、"X 参与的"、"与 X 相关的"、"X 作为成员的"均可。注意权限约束:无论传谁的 userid,最终结果只会返回当前调用者本人有权限访问的文档;他人有权限但你没权限的文档不会出现在结果中,因此本接口不能用于"窥探他人独占的文档列表"。
wecom-cli doc search --json '<JSON 参数>'
| 字段 | 类型 | 必填 | 默认值 | 语义 |
|---|---|---|---|---|
keywords |
string[] | 是 | — | 关键词数组,OR 关系。仅按其他条件过滤时传空数组 [] |
search_scope |
string | 否 | title_content |
搜索范围枚举:title(仅标题) / title_content(标题和内容,默认) / content(仅内容) |
doc_types |
string[] | 否 | — | 限定类型,取值为 doc / sheet / smartsheet / smartpage / collect / ppt / mind / flow / journal / pdf 的子集 |
creator_userids |
string[] | 否 | — | 限定创建者 userid 列表(典型:传当前用户 userid 查"我最近创建") |
visitor_userids |
string[] | 否 | — | 限定"浏览者 / 成员" userid 列表 |
createdafter / createdbefore |
string | 否 | — | 创建时间窗,YYYY-MM-DD HH:mm:ss |
openedafter / openedbefore |
string | 否 | — | 最近打开时间窗,YYYY-MM-DD HH:mm:ss |
sort_by |
string | 否 | best_match |
排序枚举:bestmatch(默认) / createtime(创建时间) / modify_time(修改时间) |
limit |
int | 否 | 10 |
返回上限,不超过 100 |
cursor |
string | 否 | — | 分页游标;首次传空,后续取上页 next_cursor |
| 字段 | 类型 | 说明 |
|---|---|---|
has_more |
boolean | 是否还有下一页;true 时用 next_cursor 续取 |
next_cursor |
string | 下一页游标 |
docs |
array | 结果文档列表,每项字段见下表 |
docs[] 单条文档字段:
| 字段 | 类型 | 说明 |
|---|---|---|
docid |
string | 文档唯一 ID |
doc_name |
string | 文档名 |
doc_type |
string | 文档类型 |
url |
string | 可访问的文档链接 |
creator_userid |
string | 文档创建者 userid |
createtime / modifytime |
string | 创建 / 最近修改时间 |
titlehighlight / texthighlight |
string[] | 命中高亮片段 |
ppt / journal / collect / mind / flow 目前没有任何下游 skill 或 CLI 能读取正文,命中这些类型且用户要看内容时,直接告知暂不支持读取,引导用户用 doc_url 在企业微信客户端内打开查看。{})。- (a) 按内容找 → keywords(必填,不得为空数组) + searchscope=titlecontent + sortby=bestmatch - (b) "我最近浏览 / 与我相关 / 我作为成员 / 包含我的文档" → visitoruserids=[<当前 userid>](必填,不得为空) + sortby=bestmatch + openedafter(默认近 7 天) - (c) "包含某人为成员 / 某人参与 "(他人)→ visitoruserids=[<他人 userid>](必填,先经 wecomcli-contact 由姓名解析)+ sortby=bestmatch;必须提醒用户:只会返回当前调用者有权限访问的那部分文档,对方独占且你无权访问的文档不会出现。 - (d) "我最近创建" → creatoruserids=[<当前 userid>](必填,不得为空) + created* 时间窗 + sortby=createtime + createdafter(默认近 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 = ["周报"]。
示例:用户 query "帮我找下产品的待办tool文档"
剔除"帮我 / 找下 / 的 / 文档"等通用词,剩余 ["产品", "待办", "tool"];判定核心检索意图为 "待办" 与 "tool",故必传 token 为 ["待办", "tool"],"产品" 作为辅助 token。
wecom-cli doc search --json '{"keywords":["待办 tool","待办","tool","产品"],"search_scope":"title_content","limit":10}'
向用户展示搜索结果(含单条与多候选)时严格遵守:
- [doc_name](url),url 取接口返回的 url 字段原样使用。creator_userid 是内部 ID,禁止以任何形式输出给用户。| 依赖技能 | 典型协作场景 | 数据流向 |
|---|---|---|
wecomcli-contact |
添加文档成员时用户只给姓名,需先解析为 userid |
wecomcli-contact 的 contact users search → 返回 userid → 本 skill 的 doc members update 接口 |
拿到 docid 只是第一步。读取/打开文档正文是另一类技能,必须按doc_types,先 read 对应"内容技能"的 SKILL.md,再按其文档发命令: - doc(在线文档)→ wecomcli-doc 技能 - smartpage(智能文档)→ wecomcli-smartpage 技能 - sheet(在线表格)→ wecomcli-sheet 技能 - smartsheet(智能表格)→ wecomcli-smartsheet 技能 严禁直接拼"读正文"的命令;首次读取正文前必须 read 上述对应内容技能的 SKILL.md,命令一律以该 SKILL.md 为准。
搜索多候选需确认 / 搜索意图类确认 / 必填参数(
docid、权限角色等)缺失时,用简洁自然语言仅追问缺失或有歧义的信息;有候选项时在文字中列出供用户选择,不得自行猜测。