title: " 企业微信CLI文档 | Agent落地" category: 人工智能 tags:


上一篇我们讲 MemPalace,把重点放在 Agent 的本地长期记忆上。

这一篇开始看企业微信 CLI。

企业微信 CLI 这个选题可以写,但第一篇不建议一上来就讲消息、待办、会议、日程全部能力。

更稳的入口是:

先让 Agent 能创建、读取、写入企业微信文档。

原因很简单。

文档是企业办公里最容易验证、最容易回滚、最不容易误触发外部动作的对象。

消息涉及隐私,发消息涉及外部影响,会议和待办涉及团队协作,智能表格又涉及结构化数据和字段类型。

所以第 56 期先做“文档 Agent”:

安装 wecom-cli
获取 Bot ID 和 Secret
初始化企业微信机器人
创建一篇文档
把 Agent 生成的 Markdown 写进去
读取文档内容再交给模型分析
用 4SAPI 管模型、Key、成本和日志

这条链路跑通后,下一篇再讲消息、智能表格和执行闭环。

1. 为什么企业微信 CLI 值得写

很多企业已经把工作资料放在企业微信里:

项目周报
需求文档
会议纪要
客户材料
运营 SOP
产品排期
智能表格台账

但 AI Agent 常见的使用方式还是很手动:

人打开企业微信文档
复制内容给 AI
AI 总结或改写
人再复制回企业微信文档

这时人就变成了“Agent 和办公系统之间的剪贴板”。

企业微信 CLI 的价值在这里:

让人类和 AI Agent 都能在终端中操作企业微信。

截至 2026-06-18,我查到的公开信息是:

项目 信息
GitHub 仓库 WecomTeam/wecom-cli
NPM 包 @wecom/cli
当前 NPM 最新版 0.1.9
最新版发布时间 2026-05-27
支持平台 macOS、Linux、Windows
Node 要求 >=18
许可证 MIT

我在 Windows 本地验证:

npx --yes @wecom/cli --version

返回:

wecom-cli 0.1.9

未初始化时执行:

npx --yes @wecom/cli auth show --auth-status

返回:

unauthorized

这说明工具入口正常,只是还没有配置企业微信机器人凭证。

2. 先分清它和 4SAPI 的关系

企业微信 CLI 不是模型网关。

它不负责 Claude、GPT、GLM、Qwen、DeepSeek 这些模型调用,也不负责 Token 计费。

它负责的是企业微信办公能力:

通讯录
文档
智能表格
消息
待办
会议
日程

4SAPI 的位置在模型层。

更准确的架构是:

企业微信文档
  -> wecom-cli 读取或写入
  -> Codex / Claude Code / OpenClaw 等 Agent 编排任务
  -> 4SAPI 统一调用模型
  -> Claude / GPT / GLM / Qwen 等模型生成结果
  -> wecom-cli 写回企业微信文档

所以这篇不是“把 wecom-cli 接入 4SAPI”。

而是:

把 Agent 的模型调用统一走 4SAPI。
把企业微信 CLI 当成 Agent 的办公工具层。

这样写才不会混淆。

4SAPI 管:

模型路由
Key 管理
成本统计
日志审计
失败排查

wecom-cli 管:

企业微信文档的创建、读取和写入

Agent 管:

理解用户需求
决定什么时候读文档
什么时候调用模型
什么时候写回文档
什么时候向用户确认

3. 它不是群机器人 Webhook

很多人一听企业微信机器人,会想到群机器人 Webhook:

拿一个 webhook 地址
curl 发一段 markdown
群里收到消息

wecom-cli 不是这个定位。

它基于企业微信 API 模式智能机器人,使用 Bot ID 和 Secret 初始化。

这意味着它的重点不是“往群里推一条通知”,而是让 CLI 和 Agent 能在授权范围内调用办公能力。

对于文档场景,核心价值是:

Agent 可以创建企业微信文档。
Agent 可以读取企业微信文档。
Agent 可以把 Markdown 写入企业微信文档。
Agent 可以把会议纪要、周报、复盘、任务拆解沉淀到企业微信。

这和简单 Webhook 推送是两类东西。

4. 合规边界先写在前面

这篇只讨论官方开放能力,不讨论任何绕过权限或模拟客户端的做法。

不要写成:

自动登录企业微信客户端
抓取客户端消息数据库
模拟点击复制文档
绕过可见范围读取资料

正确边界是:

API 模式智能机器人
官方 wecom-cli
机器人可见范围
用户授权
本地凭证加密存储
敏感内容按企业规则处理

尤其是接 4SAPI 时,要把数据边界讲清楚。

如果企业微信文档里包含客户信息、合同、内部财务、人事资料,就要先确认:

这类内容能不能发给外部模型?
是否需要脱敏?
是否只允许本地模型处理?
是否需要审计调用日志?

大模型API中转站能帮你统一入口、日志和成本,但不能替你决定哪些数据可以出域。

5. 安装 wecom-cli

环境要求:

Node.js >= 18
企业微信账号
macOS / Linux / Windows
可选:API模式智能机器人 Bot ID 和 Secret

安装:

npm install -g @wecom/cli

验证版本:

wecom-cli --version

查看帮助:

wecom-cli --help

帮助信息里会看到这些品类:

contact   通讯录
doc       文档 / 智能表格
meeting   会议
msg       消息
schedule  日程
todo      待办事项
cache     本地缓存

如果只写文档 Agent,第一篇重点看 doccontact 就够了。

contact 用来把姓名转换成 userid。

doc 用来创建、读取、写入文档。

6. 安装 Agent Skills

如果你的 Agent 工具支持 Skills,可以安装官方 Skills:

npx skills add WeComTeam/wecom-cli -y -g

这一步不是普通人手敲命令必须的,但对 Agent 很有价值。

因为 Skills 会告诉 Agent:

什么时候该调用哪个企业微信命令
参数怎么填
文档 URL 怎么识别
智能表格和普通表格怎么区分
哪些操作需要用户确认
错误码怎么处理

仓库里能看到这些 Skill:

Skill 作用
wecomcli-doc 文档、表格、智能文档读写
wecomcli-smartsheet 智能表格结构和记录管理
wecomcli-contact 通讯录可见范围成员查询
wecomcli-msg 会话、消息、媒体文件、文本发送
wecomcli-todo 待办查询、创建、更新、删除
wecomcli-meeting 会议创建、查询、取消、成员管理
wecomcli-schedule 日程查询、创建、更新、闲忙查询

第 56 期只用前三个概念:

doc:文档读写
smartsheet:先知道它和普通文档不同
contact:涉及人员字段时不能猜 userid

7. 获取 Bot ID 和 Secret

企业微信帮助中心有一篇官方文档,标题是:

如何获取 Bot ID 和 Secret

步骤可以概括为:

打开企业微信客户端
-> 工作台
-> 智能机器人
-> 创建机器人
-> 手动创建
-> 选择 API模式创建
-> 连接方式选择“使用长连接”
-> 生成 Bot ID 和 Secret
-> 配置机器人可见范围
-> 保存

这里有两个重要点。

第一,Secret 要当成 API Key 管。

不要截图发群,不要写进文章,不要提交到 Git。

第二,可见范围决定 CLI 能看到什么。

机器人不可见的成员、文档、会话,CLI 也不应该能越权访问。

如果后面 Agent 读不到某个文档,不要第一反应就怀疑模型或 4SAPI。

先检查:

机器人是否有可见范围
当前用户是否有文档权限
docid 或 URL 是否正确
CLI 是否初始化成功
动态工具列表是否拉取成功

8. 初始化企业微信 CLI

交互式初始化:

wecom-cli init

当前 @wecom/cli 0.1.9 支持两种交互方式:

扫码接入
手动输入 Bot ID 和 Secret

非交互参数当前主要用于扫码接入:

wecom-cli init --noninteractive

如果不想自动打开二维码页面:

wecom-cli init --noninteractive --no-open

初始化后检查状态:

wecom-cli auth show --auth-status

成功时应该返回:

authorized

注意:截至 @wecom/cli 0.1.9,我从源码和公开 issue 里看到,init --bootstrap 或通过环境变量直接注入 Bot ID / Secret 仍是讨论方向,不是已发布正式能力。

所以文章不要写成:

wecom-cli init --bootstrap

更稳妥的写法是:

当前发布版以交互式初始化为主。
CI、容器、云端沙箱中的免交互初始化仍是后续值得关注的方向。

9. 创建第一篇企业微信文档

创建普通文档:

wecom-cli doc create_doc '{"doc_type": 3, "doc_name": "AI项目周报"}'

成功后返回里会包含:

docid
url

这两个信息要保存。

url 给人看。

docid 给后续 CLI 调用。

如果你要让 Agent 自动创建项目文档,建议让它在本地或知识库里维护一个映射:

项目 文档类型 docid url
A 项目 周报 DOCID https://doc.weixin.qq.com/doc/...
B 项目 会议纪要 DOCID https://doc.weixin.qq.com/doc/...

不要每次都重新创建一篇新文档。

更好的方式是:

第一次创建
后续读取原文
在原文基础上追加或覆写
必要时新建归档文档

10. 写入 Markdown 内容

用 Markdown 覆写文档:

wecom-cli doc edit_doc_content '{"docid": "DOCID", "content": "# AI项目周报\n\n## 本周完成\n\n- 完成企业微信 CLI 调研\n- 跑通文档创建和写入\n\n## 下周计划\n\n- 接入消息总结\n- 设计智能表格任务台账", "content_type": 1}'

这里 content_type: 1 表示 Markdown。

这也是企业微信 CLI 对 Agent 友好的地方。

Agent 本来就擅长生成 Markdown:

标题
目录
表格
列表
行动项
风险清单
下一步计划

所以第一条实战链路可以设计成:

用户:帮我生成一份项目周报
-> Agent 调 4SAPI 生成 Markdown
-> wecom-cli 创建企业微信文档
-> wecom-cli 写入 Markdown
-> 返回文档 URL 给用户

这样读者马上能看到结果。

11. 读取文档内容

读取文档:

wecom-cli doc get_doc_content '{"docid": "DOCID", "type": 2}'

也可以通过 URL:

wecom-cli doc get_doc_content '{"url": "https://doc.weixin.qq.com/doc/xxx", "type": 2}'

读取接口采用异步轮询机制。

首次调用可能返回 task_id,如果 task_donefalse,就要携带 task_id 再调用,直到完成。

这点对 Agent 很重要。

不要让 Agent 调一次没拿到正文就说“文档为空”。

正确逻辑是:

第一次调用 get_doc_content
-> 如果 task_done=false,保存 task_id
-> 等待后继续轮询
-> task_done=true 后再把 content 交给模型

拿到内容后,就可以接 4SAPI 做分析:

读取需求文档
-> 调 4SAPI 总结需求
-> 输出风险点
-> 生成评审问题
-> 写回一篇评审纪要模板

12. 普通文档、表格、智能表格、智能文档别混用

这是企业微信 CLI 文档场景里最容易踩的坑。

企业微信里有多种文档对象:

URL 模式 品类 推荐接口
/doc/* 文档 get_doc_content
/sheet/* 普通在线表格 get_doc_content
/smartsheet/* 智能表格 smartsheet_* 系列
/smartpage/* 智能文档 / 智能主页 smartpage_export_task / smartpage_get_export_result

不要把 /smartsheet/ 当成普通 /sheet/

不要在用户只是说“帮我建个文档”时默认创建智能文档。

不要把智能文档接口泛化到普通文档。

这也是为什么官方 Skills 里会把 URL 识别规则写得很细。

人能看页面猜类型。

Agent 必须按规则判断。

13. 智能文档什么时候用

普通文档适合:

周报
会议纪要
复盘
方案草稿
需求说明
客户沟通总结

智能文档更适合:

多页面知识库
结构化项目主页
由多个 Markdown 文件生成的资料包

创建智能文档时,命令要用带 + 的 helper:

wecom-cli doc +smartpage_create '{"title": "项目概览", "pages": [{"page_title": "需求文档", "content_type": 1, "page_filepath": "/path/to/requirements.md"}]}'

注意几个限制:

只有用户明确说智能文档或智能主页时才用 smartpage。
Markdown 文件要传 content_type=1。
每个子页面 Markdown 文件大小不要超过 10MB。
创建成功后保存 docid 和 url。

第一篇教程不建议把智能文档作为主线。

它更适合作为进阶章节。

14. 文档 Agent 的三种实战流

14.1 AI 周报生成器

适合个人和小团队。

流程:

用户输入本周要点
-> Agent 调 4SAPI 整理成周报
-> wecom-cli 创建企业微信文档
-> wecom-cli 写入 Markdown
-> 返回文档链接

命令骨架:

wecom-cli doc create_doc '{"doc_type": 3, "doc_name": "第25周项目周报"}'
wecom-cli doc edit_doc_content '{"docid": "DOCID", "content": "# 第25周项目周报\n\n...", "content_type": 1}'

这个流的好处是低风险。

它不读取聊天记录,不自动发消息,不改别人日程。

很适合第一篇文章用来演示。

14.2 需求文档评审助手

适合研发和产品团队。

流程:

用户给一个企业微信文档 URL
-> wecom-cli 读取文档内容
-> Agent 调 4SAPI 检查需求完整性
-> 输出缺失项、歧义点、风险点
-> 创建一篇评审问题清单

命令骨架:

wecom-cli doc get_doc_content '{"url": "https://doc.weixin.qq.com/doc/xxx", "type": 2}'
wecom-cli doc create_doc '{"doc_type": 3, "doc_name": "需求评审问题清单"}'
wecom-cli doc edit_doc_content '{"docid": "DOCID", "content": "# 需求评审问题清单\n\n...", "content_type": 1}'

这个流能体现 4SAPI 的价值。

同一份需求文档可以用不同模型处理:

便宜模型先做结构抽取
强模型做风险判断
代码模型生成接口影响分析

4SAPI 统一记录每一步模型调用,方便看成本。

14.3 会议纪要模板生成器

适合项目经理。

流程:

用户输入会议主题和参会人
-> Agent 生成会议纪要模板
-> wecom-cli 创建文档
-> 写入议程、背景、待讨论问题、行动项表格

模板可以包含:

# 会议纪要

## 会议信息

| 项目 | 内容 |
| --- | --- |
| 主题 | 需求评审 |
| 时间 | 2026-06-19 15:00 |
| 参会人 | 产品、研发、测试 |

## 背景

## 讨论要点

## 决议

## 行动项

| 事项 | 负责人 | 截止时间 | 状态 |
| --- | --- | --- | --- |

第一篇文章做到这里已经很充实。

下一篇再把行动项同步到智能表格或待办。

15. 本地配置和缓存

wecom-cli 的默认路径:

项目 默认位置
配置目录 ~/.config/wecom
机器人凭证 <config_dir>/bot.enc
MCP 配置缓存 <config_dir>/mcp_config.enc
媒体临时目录 <system_tmp>/wecom/media

可用环境变量:

变量 作用
WECOM_CLI_CONFIG_DIR 覆盖默认配置目录
WECOM_CLI_TMP_DIR 覆盖媒体临时目录根目录
WECOM_CLI_LOG_LEVEL 打开 stderr 日志并设置级别
WECOM_CLI_LOG_FILE 打开 JSON 日志输出
WECOM_CLI_MCP_CONFIG_ENDPOINT 覆盖默认 MCP 配置接口地址

查看缓存:

wecom-cli cache status

清理缓存:

wecom-cli cache clear

如果你刚改了机器人权限,但 CLI 里的工具列表还是旧的,可以先清缓存再重试。

16. 常见排错

16.1 help 都看不了

有些帮助信息需要动态获取工具 schema。

如果 wecom-cli doc --help 不正常,先检查:

是否已经 init
auth 状态是否 authorized
网络是否能访问企业微信相关服务
机器人权限是否配置完整
缓存是否过期或损坏

16.2 文档读取失败

检查:

URL 是否属于 /doc/ 或 /sheet/
智能表格是否误用了 get_doc_content
当前用户或机器人是否有文档权限
是否需要轮询 task_id
errcode 和 errmsg 是什么

16.3 Agent 写入内容格式乱

建议固定输出 Markdown。

并要求 Agent 先生成草稿,再调用 CLI 写入。

不要让 Agent 一边想内容一边拼 JSON。

更稳的流程是:

先生成 Markdown 文本
检查标题、表格、列表
再把文本作为 content 写入 edit_doc_content

16.4 不要直接展示内部 ID

如果后续涉及成员字段,必须用 contact get_userlist 做转换。

不要把 useridcreator_idfollower_id 直接展示给业务用户。

17. 成本与风险提示

wecom-cli 本身不是按 Token 收费的模型服务。

但当你把它接到 Agent 后,成本主要来自:

模型调用
文档内容长度
多轮读取和改写
复杂任务的反复推理
日志和存储

这就是 4SAPI 适合放在中间的原因。

你可以把任务拆成:

环节 模型策略
文档结构抽取 便宜模型
风险判断 强模型
改写润色 中档模型
格式修复 便宜模型

同时通过 4SAPI 看每一步花了多少。

风险上,第一篇要强调:

文档可能包含敏感信息。
模型调用要遵守企业数据规则。
Secret 不要泄露。
文档覆写前最好先读取原文或保留备份。
生产环境不要让 Agent 无确认地覆盖重要文档。

18. 总结

企业微信 CLI 很适合写进【大模型API中转站】系列。

但第一篇建议从文档能力切入。

它的主线不是“炫技”,而是把 AI Agent 从聊天框拉进真实办公流:

创建文档
读取文档
分析文档
生成 Markdown
写回企业微信

这条链路足够小,也足够实用。

它和 4SAPI 的分工也很清楚:

wecom-cli 管企业微信文档。
4SAPI 管模型调用、成本和日志。
Agent 管任务编排。

下一篇可以继续往前走:

从企业微信消息中提取信息,
写入智能表格,
生成待办、会议和日程,
让 Agent 真正形成办公执行闭环。

资料来源