安装
npx skills add https://github.com/wecomteam/wecom-cli --skill wecomcli-edit-todo
- 企业微信待办事项编辑技能
- wecom-cli
- 是企业微信提供的命令行程序,所有操作通过执行
- wecom-cli
- 命令完成。
- 通过
- wecom-cli
- 对企业微信待办事项进行写操作,支持四种操作:创建待办、更新待办、删除待办、变更用户状态。
- 行为策略
- 重试策略
- 遭遇"返回 HTTP 错误"或"HTTP 请求失败"时,主动重试,最多重试三次。
操作
1. 创建待办
创建一个新的待办事项,可指定内容、分派人和提醒时间:
wecom-cli todo create_todo
''
参数说明:
需要遵循 “注意事项”中的格式要求:
参数
类型
必填
说明
content
string
✅
待办内容
follower_list
object
❌
分派人列表,格式见注意事项第 7 条
remind_time
string
❌
提醒时间,格式:
YYYY-MM-DD HH:mm:ss
调用示例:
wecom-cli todo create_todo
'{"content": "<待办的内容>", "remind_time": "2025-06-01 09:00:00"}'
返回格式:
{
"errcode"
:
0
,
"errmsg"
:
"ok"
,
"todo_id"
:
"TODO_ID"
}
2. 更新待办
修改已有待办事项的内容、分派人、状态或提醒时间:
wecom-cli todo update_todo
''
参数说明:
需要遵循 “注意事项”中的格式要求:
参数
类型
必填
说明
todo_id
string
✅
待办 ID
content
string
❌
新的待办内容
follower_list
object
❌
新的分派人列表(全量替换,非追加),格式见注意事项第 7 条。若要新增分派人,需先查出现有分派人,合并后一起提交
todo_status
number
❌
新的待办状态:
0
-已完成,
1
-进行中。删除请使用
delete_todo
remind_time
string
❌
新的提醒时间
调用示例:
wecom-cli todo update_todo
'{"todo_id": "TODO_ID", "content": "<待办的内容>", "remind_time": "2025-07-01 09:00:00"}'
返回格式:
{
"errcode"
:
0
,
"errmsg"
:
"ok"
}
3. 删除待办
删除指定的待办事项:
wecom-cli todo delete_todo
''
参数说明:
需要遵循 “注意事项”中的格式要求:
参数
类型
必填
说明
todo_id
string
✅
待办 ID
调用示例:
wecom-cli todo delete_todo
'{"todo_id": "TODO_ID"}'
返回格式:
{
"errcode"
:
0
,
"errmsg"
:
"ok"
}
删除操作不可撤销,执行前应向用户确认。
注意:
delete_todo
与
update_todo
设置
todo_status=2
效果相同,优先使用
delete_todo
。
4. 变更用户待办状态
更改当前用户在某个待办中的状态(拒绝/接受/已完成):
wecom-cli todo change_todo_user_status
''
参数说明:
需要遵循 “注意事项”中的格式要求:
参数
类型
必填
说明
todo_id
string
✅
待办 ID
user_status
number
✅
用户状态:
0
-拒绝,
1
-接受,
2
-已完成
调用示例:
wecom-cli todo change_todo_user_status
'{"todo_id": "TODO_ID", "user_status": 2}'
返回格式:
{
"errcode"
:
0
,
"errmsg"
:
"ok"
}
典型工作流
创建待办并分派给同事
用户问:"帮我创建一个待办,让张三下周一前完成需求文档"
第一步:通过 wecomcli-lookup-contact 技能查询张三的 userid,在返回结果中筛选姓名为"张三"的成员,获取其 userid
第二步:创建待办并分派:
wecom-cli todo create_todo '{"content": "<待办的内容>", "follower_list": {"followers": [{"follower_id": "zhangsan", "follower_status": 1}]}, "remind_time": "2025-03-24 09:00:00"}'
follower_id
必须来自
wecomcli-lookup-contact
技能的
get_userlist
接口返回的
userid
,禁止自行猜测。若搜索结果有多个同名人员,需展示候选列表让用户确认。
标记待办完成
需要区分两种场景:
标记待办本身完成
(改
todo_status
)和
标记我的参与状态为完成
(改
user_status
)。
场景 A:标记待办本身完成
用户问:"把'完成Q2规划文档'这个待办标记为完成" / "关闭这个待办"
第一步:通过 wecomcli-get-todo-list 获取待办列表,找到目标待办的 todo_id:
wecom-cli todo get_todo_list '{}'
第二步:通过 wecomcli-get-todo-detail 获取详情,确认是目标待办:
wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID"]}'
第三步:确认后,将待办状态改为已完成:
wecom-cli todo update_todo '{"todo_id": "TODO_ID", "todo_status": 0}'
场景 B:标记我的参与状态为完成
用户问:"我已经完成了这个待办" / "标记我的部分为完成"
第一步:通过 wecomcli-get-todo-list 获取待办列表,找到目标待办的 todo_id:
wecom-cli todo get_todo_list '{}'
第二步:通过 wecomcli-get-todo-detail 获取详情,确认是目标待办:
wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID"]}'
第三步:确认后,变更当前用户的参与状态为已完成:
wecom-cli todo change_todo_user_status '{"todo_id": "TODO_ID", "user_status": 2}'
如何判断用户意图:
如果用户说"标记完成"且该待办是自己创建的、没有其他分派人,通常指场景 A(标记待办本身完成)。如果该待办有多个参与人,用户可能只是想标记自己那部分完成(场景 B)。不确定时应向用户确认。
用户提供的是待办内容描述而非 ID,所以需要先通过 wecomcli-get-todo-list 和 wecomcli-get-todo-detail 查找再匹配。匹配到多个相似待办时,列出候选项让用户确认。
更新待办内容或提醒时间
用户问:"把那个需求文档的待办提醒时间改到下周五"
第一步:查找目标待办:
wecom-cli todo get_todo_list '{}'
,再查详情:
wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID_1", "TODO_ID_2"]}'
第二步:确认目标后更新:
wecom-cli todo update_todo '{"todo_id": "TODO_ID", "remind_time": "2025-03-28 09:00:00"}'
删除待办
用户问:"删掉'代码评审'那个待办"
第一步:查找目标待办:
wecom-cli todo get_todo_list '{}'
,再查详情:
wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID"]}'
第二步:向用户确认后删除:
wecom-cli todo delete_todo '{"todo_id": "TODO_ID"}'
删除前必须向用户确认,确认措辞示例:"确认删除待办'代码评审'吗?删除后不可恢复。"
注意事项
todo_id 来源规则
todo_id
必须来自
wecomcli-get-todo-list
返回的结果,禁止自行推测或构造
用户通常提供待办内容描述而非 ID,应先通过 wecomcli-get-todo-list 查列表再匹配
若匹配到多个相似待办,展示候选列表让用户确认
follower_id 来源规则
follower_id
即
userid
,必须通过
wecomcli-lookup-contact
技能的
get_userlist
接口获取
禁止根据用户姓名自行猜测 userid
若搜索结果有多个同名人员,展示候选列表让用户选择
时间格式
所有时间参数使用
YYYY-MM-DD HH:mm:ss
格式
用户说"明天"、"下周一"等相对时间时,根据当前日期推算具体日期
状态值含义
待办状态(
todo_status
):
0
-已完成,
1
-进行中,
2
-已删除
用户状态(
user_status
):
0
-拒绝,
1
-接受,
2
-已完成
分派人状态(
follower_status
):
0
-拒绝,
1
-接受,
2
-已完成
破坏性操作确认
删除待办(
delete_todo
)前必须向用户确认
变更状态为"拒绝"(
user_status=0
)前建议向用户确认
错误处理
若
errcode
不为
0
,说明接口调用失败,告知用户
errmsg
中的错误信息
follower_list
的格式(作为输入参数的时候)
"follower_list"
:
{
// 分派人列表
"followers"
:
[
// 注意里面还有一层是 "followers",它的value才是真正的列表数组
{
"follower_id"
:
"FOLLOWER_ID"
,
// 分派人id
"follower_status"
:
1
// 分派人状态:0-拒绝, 1-接受, 2-已完成
}
]
}
follower_id
即 userid,需要通过
wecomcli-lookup-contact
查询获取,禁止自行猜测或构造。
相关技能
获取待办列表
:
wecomcli-get-todo-list
— 查询待办概要列表,获取 todo_id
获取待办详情
:
wecomcli-get-todo-detail
— 根据 todo_id 获取完整内容
通讯录查询
:
wecomcli-lookup-contact
的
get_userlist
— 获取成员 userid,用于
follower_id
← 返回排行榜