Wecomcli_crm wecomcli-workflow-multi-agent-dev
企业微信多编程代理协同技能。支持竞赛模式、分工模式、流水线模式三种工作模式,通过企业微信追踪任务和结果。当用户说"并行开发"、"多代理"、"竞赛模式"、"分工模式"、"流水线协作"、"代码对比"、"两个代理同时"等涉及多代理编程的场景时触发。
install
source · Clone the upstream repo
git clone https://github.com/liangdabiao/wecomcli_crm
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/liangdabiao/wecomcli_crm "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/wecomcli-workflow-multi-agent-dev" ~/.claude/skills/liangdabiao-wecomcli-crm-wecomcli-workflow-multi-agent-dev && rm -rf "$T"
manifest:
.claude/skills/wecomcli-workflow-multi-agent-dev/SKILL.mdsource content
企业微信多编程代理协同
通过 Agent Tool 启动多个子代理并行工作,企业微信智能表格追踪任务,消息通知结果。
首次配置(自动初始化)
执行任何操作前,先检查 memory 中是否已有多代理协同配置。 如果没有,按以下流程自动创建:
步骤 1:创建智能表格
wecom-cli doc create_doc '{"doc_type": 10, "doc_name": "多代理开发任务"}'
从返回结果中获取
docid。
步骤 2:创建子表和字段
# 创建子表1: 开发任务 wecom-cli doc smartsheet_add_sheet '{"docid": "<DOCID>", "sheet_name": "开发任务"}' # 创建子表2: 竞赛记录 wecom-cli doc smartsheet_add_sheet '{"docid": "<DOCID>", "sheet_name": "竞赛记录"}'
开发任务字段:
wecom-cli doc smartsheet_add_fields '{"docid": "<DOCID>", "sheet_id": "<SHEET_ID>", "fields": [ {"field_title": "任务描述", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "工作模式", "field_type": "FIELD_TYPE_SINGLE_SELECT"}, {"field_title": "分配代理", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "状态", "field_type": "FIELD_TYPE_SINGLE_SELECT"}, {"field_title": "结果摘要", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "耗时", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "创建时间", "field_type": "FIELD_TYPE_TEXT"} ]}'
竞赛记录字段:
wecom-cli doc smartsheet_add_fields '{"docid": "<DOCID>", "sheet_id": "<SHEET_ID>", "fields": [ {"field_title": "任务描述", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "代理1方案", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "代理1评分", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "代理2方案", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "代理2评分", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "推荐方案", "field_type": "FIELD_TYPE_SINGLE_SELECT"}, {"field_title": "对比分析", "field_type": "FIELD_TYPE_TEXT"}, {"field_title": "创建时间", "field_type": "FIELD_TYPE_TEXT"} ]}'
步骤 3:保存配置到 memory
将以下信息保存到 memory 文件
multi-agent-dev-config.md:
--- name: multi-agent-dev-config description: 多代理协同智能表格配置信息 type: project --- ## 多代理协同表配置 - docid: <DOCID> - url: <创建时返回的URL> - 表格名称: 多代理开发任务 - 开发任务 sheet_id: <SHEET_ID> - 竞赛记录 sheet_id: <SHEET_ID>
操作流程
以下命令中
和各<DOCID>从 memory 的 multi-agent-dev-config 中读取。<SHEET_ID>
模式 1:竞赛模式
同一任务分配给 2-3 个代理各自独立完成,AI 对比选最优方案。
适用场景: 需要最优方案、架构选择、算法实现
交互流程:
- 用户:"用竞赛模式帮我实现一个用户登录模块,两个代理各写一份"
- AI 记录任务到智能表格
- 使用 Agent Tool 启动 2 个子代理(
)subagent_type: "general-purpose" - 两个代理各自完成实现
- AI 对比两个方案,评分选优
- 发送结果到消息
Agent Tool 调用示例:
使用 Agent Tool 并行启动 2 个 general-purpose 子代理: 代理1 Prompt:实现一个用户登录模块。要求: - 使用 JWT + Refresh Token 方案 - 包含密码强度校验 - 包含输入验证和错误处理 - 代码规范、有注释 代理2 Prompt:实现一个用户登录模块。要求: - 使用 Session-based 方案 - 包含密码强度校验 - 包含输入验证和错误处理 - 代码规范、有注释
记录结果:
# 记录各代理任务 wecom-cli doc smartsheet_add_records '{"docid": "<DOCID>", "sheet_id": "<开发任务SHEET_ID>", "records": [ {"values": {"任务描述": [{"type":"text","text":"用户登录模块"}], "工作模式": [{"text":"竞赛"}], "分配代理": [{"type":"text","text":"Agent1"}], "状态": [{"text":"已完成"}], "结果摘要": [{"type":"text","text":"JWT方案,完整性好"}], "耗时": [{"type":"text","text":"45s"}], "创建时间": [{"type":"text","text":"2026-04-02"}]}}, {"values": {"任务描述": [{"type":"text","text":"用户登录模块"}], "工作模式": [{"text":"竞赛"}], "分配代理": [{"type":"text","text":"Agent2"}], "状态": [{"text":"已完成"}], "结果摘要": [{"type":"text","text":"Session方案,简洁"}], "耗时": [{"type":"text","text":"38s"}], "创建时间": [{"type":"text","text":"2026-04-02"}]}} ]}' # 记录竞赛对比 wecom-cli doc smartsheet_add_records '{"docid": "<DOCID>", "sheet_id": "<竞赛记录SHEET_ID>", "records": [{"values": { "任务描述": [{"type":"text","text":"用户登录模块"}], "代理1方案": [{"type":"text","text":"JWT + Refresh Token,完整性好"}], "代理1评分": [{"type":"text","text":"8.5"}], "代理2方案": [{"type":"text","text":"Session-based,简洁清晰"}], "代理2评分": [{"type":"text","text":"7.0"}], "推荐方案": [{"text":"代理1"}], "对比分析": [{"type":"text","text":"JWT方案更符合现代最佳实践,Session方案更简洁但缺少密码强度校验"}], "创建时间": [{"type":"text","text":"2026-04-02"}] }}]}'
模式 2:分工模式
不同任务分配给不同代理并行执行。
适用场景: 多个独立任务、批量 bug 修复、并行功能开发
交互流程:
- 用户:"我有3个任务要并行做:修bug #123、写登录页面、优化SQL查询"
- AI 为每个任务启动一个子代理
- 所有代理并行执行
- 汇总结果
Agent Tool 调用:
并行启动 3 个 general-purpose 子代理: 代理1:修复 bug #123 — <具体 bug 描述> 代理2:写登录页面 — <具体需求> 代理3:优化 SQL 查询 — <具体优化目标>
记录结果:
wecom-cli doc smartsheet_add_records '{"docid": "<DOCID>", "sheet_id": "<开发任务SHEET_ID>", "records": [ {"values": {"任务描述": [{"type":"text","text":"修bug #123"}], "工作模式": [{"text":"分工"}], "分配代理": [{"type":"text","text":"Agent1"}], "状态": [{"text":"已完成"}], "耗时": [{"type":"text","text":"45s"}], "创建时间": [{"type":"text","text":"2026-04-02"}]}}, {"values": {"任务描述": [{"type":"text","text":"写登录页面"}], "工作模式": [{"text":"分工"}], "分配代理": [{"type":"text","text":"Agent2"}], "状态": [{"text":"已完成"}], "耗时": [{"type":"text","text":"120s"}], "创建时间": [{"type":"text","text":"2026-04-02"}]}}, {"values": {"任务描述": [{"type":"text","text":"优化SQL查询"}], "工作模式": [{"text":"分工"}], "分配代理": [{"type":"text","text":"Agent3"}], "状态": [{"text":"已完成"}], "耗时": [{"type":"text","text":"60s"}], "创建时间": [{"type":"text","text":"2026-04-02"}]}} ]}'
发送汇总通知:
wecom-cli msg send_message '{"chat_type": 1, "chatid": "<USERID>", "msgtype": "text", "text": {"content": "分工任务全部完成!\n\n| 任务 | 代理 | 状态 | 耗时 |\n|------|------|------|------|\n| 修bug #123 | Agent1 | 完成 | 45s |\n| 写登录页面 | Agent2 | 完成 | 120s |\n| 优化SQL查询 | Agent3 | 完成 | 60s |\n\n总耗时 120s(串行需 225s,加速 1.9x)"}}'
模式 3:流水线模式
代码→审查→测试,按顺序由不同代理协作完成。
适用场景: 复杂功能开发、需要质量保障的任务
交互流程:
- 用户:"用流水线模式帮我重构这个模块"
- 代理1:实现/重构代码
- 代理2:代码审查,提出改进建议
- 代理3:补充测试(可选)
- 汇总结果
Agent Tool 调用:
按顺序启动 3 个子代理(注意:流水线是串行的,不是并行): 阶段1 代理:重构 <模块名> 模块的代码。要求:<具体要求> 阶段2 代理(接收阶段1结果):对以下代码进行审查。要求: - 检查代码质量、潜在 bug、性能问题 - 提出 3-5 个改进建议 - 评估代码可维护性 阶段3 代理(接收阶段1+2结果):为以下代码编写完整的单元测试。要求: - 覆盖所有主要功能路径 - 包含边界情况测试
三种模式对比
| 模式 | 适用场景 | 代理数量 | 执行方式 | 加速比 |
|---|---|---|---|---|
| 竞赛 | 需要最优方案 | 2-3个 | 同一任务,各自完成,AI对比 | 1x(取最慢) |
| 分工 | 多个独立任务 | 按任务数 | 不同任务,并行完成 | Nx |
| 流水线 | 复杂功能,需质量保障 | 2-3个 | 代码→审查→测试,顺序协作 | ~0.7x(有审查开销) |
字段类型写入格式(通用规则)
完整字段类型格式说明参见 crm-schema
| 字段类型 | 写入格式 | 示例 |
|---|---|---|
| TEXT | | 任务描述、代理名、耗时等 |
| SINGLE_SELECT | | 工作模式、状态、推荐方案等 |
实操注意事项
常见踩坑
- 更新时不传 key_type — 必须带
"key_type": "CELL_VALUE_KEY_TYPE_FIELD_TITLE" - API 调用失败时 — 检查错误码:301085 表示 docid 无效(改用 url);2022004 表示字段未找到(先 add_fields);2022003 表示记录不存在(先 add_records)。遇到错误先用
验证表结构。smartsheet_get_sheet '{"url": "<URL>"}' - Agent Tool 隔离 — 竞赛模式的两个代理需要在
中独立工作,避免互相干扰isolation: "worktree" - 流水线串行依赖 — 流水线模式下,阶段 2 和 3 的 prompt 需要包含阶段 1 的输出
- 任务粒度 — 分工模式的每个任务应足够独立,避免交叉依赖
- 代理数量限制 — 建议最多同时启动 3 个代理,避免资源竞争
- SINGLE_SELECT 创建时 options 不生效 —
传入的smartsheet_add_fields
不会预创建选项,选项在首次写入记录时通过property.options
自动创建。创建字段时可省略[{"text": "选项"}]
参数。property
数据联动
- 本 Skill 独立运行,不依赖其他 workflow Skill
- 使用底层
创建跟踪待办(可选)wecom-cli todo - 使用底层
发送通知wecom-cli msg