wecomcli-todo

wecomcli-todo

熱門

企業微信待辦事項管理技能,支援查詢待辦列表、取得待辦詳情、建立待辦、更新待辦、刪除待辦及變更使用者處理進度狀態。在使用者說「看看我的待辦列表」、「我有哪些待辦」、「幫我建立一個待辦」、「把這個任務分派給張三」、「標記待辦完成」、「刪掉那個待辦」、「幫我建個提醒」、「更新一下待辦內容」、「把提醒時間改到下週」、「接受這個待辦」、「拒絕這個待辦」、「這個待辦的詳情」、「待辦分派給誰了」等需要對待辦進行讀寫操作的場景時使用。

2403星標
166分支
更新於 2026/7/2
SKILL.md
readonlyread-only
name
wecomcli-todo
description

企業微信待辦事項管理技能,支援查詢待辦列表、取得待辦詳情、建立待辦、更新待辦、刪除待辦及變更使用者處理進度狀態。在使用者說「看看我的待辦列表」、「我有哪些待辦」、「幫我建立一個待辦」、「把這個任務分派給張三」、「標記待辦完成」、「刪掉那個待辦」、「幫我建個提醒」、「更新一下待辦內容」、「把提醒時間改到下週」、「接受這個待辦」、「拒絕這個待辦」、「這個待辦的詳情」、「待辦分派給誰了」等需要對待辦進行讀寫操作的場景時使用。

企業微信待辦事項管理技能

wecom-cli 是企業微信提供的命令列程式,所有操作透過執行 wecom-cli 命令完成。

概述

wecomcli-todo 提供企業微信待辦事項的完整管理能力,包含以下功能:

  1. 查詢待辦列表 - 按建立時間和提醒時間過濾,支援分頁,回傳待辦概要資訊
  2. 取得待辦詳情 - 根據待辦 ID 列表批次取得完整資訊(含內容和分派人)
  3. 建立待辦 - 建立新的待辦事項,可指定內容、分派人和提醒時間
  4. 更新待辦 - 修改已有待辦的內容、分派人、狀態或提醒時間
  5. 刪除待辦 - 刪除指定的待辦事項
  6. 變更使用者待辦狀態 - 更改目前使用者在某個待辦中的狀態(拒絕/接受/已完成)

命令呼叫方式

執行指定命令:

wecom-cli todo <tool_name> '<json_params>'

行為策略

查完列表必須查詳情: get_todo_list 只回傳待辦 ID 和狀態等概要資訊,不包含待辦的實際內容和分派人。對使用者來說,沒有內容的待辦列表毫無用處——他們想知道的是「要做什麼」,而不是一串 ID。因此,每次呼叫 get_todo_list 拿到結果後,都要緊接著用回傳的 todo_id 列表呼叫 get_todo_detail 取得完整詳情(內容、分派人等),然後再向使用者展示。這不是可選步驟,而是完成使用者請求的必要環節。

人員 ID 轉姓名(關鍵步驟): get_todo_detail 回傳結果中的 follower_idcreator_id 都是系統內部 ID,直接展示給使用者毫無意義——使用者不認識這些 ID,只認識姓名。因此在向使用者展示待辦詳情之前,必須先呼叫 wecomcli-contact 技能取得通訊錄,將所有 follower_idcreator_id 匹配為真實姓名。具體做法:

wecom-cli contact get_userlist '{}'

如果通訊錄中找不到某個 ID,展示時標註「未知使用者(ID:xxx)」即可。

分頁未拉完時必須提醒使用者: get_todo_list 介面是分頁的,不要求一次性拉完所有資料。但如果回應中 has_moretrue,說明後面還有待辦沒有回傳——這時你在展示當前結果的同時,必須明確告訴使用者「還有更多待辦未顯示,是否需要繼續查看?」。使用者可能不知道後面還有資料,如果你不說,他們會以為看到的就是全部,這會導致遺漏重要待辦。

重試策略: 遭遇「回傳 HTTP 錯誤」或「HTTP 請求失敗」時,主動重試,最多重試三次。


命令詳細說明

1. 查詢待辦列表 (get_todo_list)

查詢目前使用者的待辦列表,支援按時間過濾和分頁。回傳的是待辦概要資訊(不含內容和分派人)。

執行命令
wecom-cli todo get_todo_list '<json格式的入參>'
入參說明
參數 類型 必填 說明
create_begin_time string 建立開始時間,格式:YYYY-MM-DD HH:mm:ss
create_end_time string 建立結束時間,格式:YYYY-MM-DD HH:mm:ss
remind_begin_time string 提醒開始時間,格式:YYYY-MM-DD HH:mm:ss
remind_end_time string 提醒結束時間,格式:YYYY-MM-DD HH:mm:ss
limit number 最大回傳數量,預設 10,最大 20
cursor string 分頁游標,首次請求不傳,後續傳入上次回應的 next_cursor
回傳格式
{
    "errcode": 0,
    "errmsg": "ok",
    "index_list": [
        {
            "todo_id": "TODO_ID",
            "todo_status": 1,
            "user_status": 1,
            "creator_id": "CREATOR_ID",
            "remind_time": "2025-06-01 09:00:00",
            "create_time": "2025-01-15 10:30:00",
            "update_time": "2025-01-16 14:20:00"
        }
    ],
    "next_cursor": "NEXT_CURSOR",
    "has_more": false
}
回傳欄位說明
欄位 類型 說明
index_list array 待辦列表
index_list[].todo_id string 待辦唯一 ID
index_list[].todo_status number 待辦狀態:0-已完成,1-進行中,2-已刪除
index_list[].user_status number 使用者狀態:0-拒絕,1-接受,2-已完成
index_list[].creator_id string 建立人 ID
index_list[].remind_time string 提醒時間
index_list[].create_time string 建立時間
index_list[].update_time string 更新時間
next_cursor string 下一頁游標
has_more boolean 是否還有更多記錄

列表回傳的是待辦概要資訊(不含內容和分派人)。拿到列表後,必須呼叫 get_todo_detail 取得完整詳情再展示給使用者。


2. 取得待辦詳情 (get_todo_detail)

根據待辦 ID 列表批次查詢完整詳情,包含待辦內容和分派人資訊。

執行命令
wecom-cli todo get_todo_detail '<json格式的入參>'
入參說明
參數 類型 必填 說明
todo_id_list array 待辦 ID 列表,最多 20 個
呼叫範例
wecom-cli todo get_todo_detail '{"todo_id_list": ["TODO_ID_1", "TODO_ID_2"]}'
回傳格式
{
    "errcode": 0,
    "errmsg": "ok",
    "data_list": [
        {
            "todo_id": "TODO_ID",
            "todo_status": 1,
            "content": "完成Q2規劃文件",
            "follower_list": {
                "followers": [
                    {
                        "follower_id": "FOLLOWER_ID",
                        "follower_status": 1,
                        "update_time": "2025-01-16 14:20:00"
                    }
                ]
            },
            "creator_id": "CREATOR_ID",
            "user_status": 1,
            "remind_time": "2025-06-01 09:00:00",
            "create_time": "2025-01-15 10:30:00",
            "update_time": "2025-01-16 14:20:00"
        }
    ]
}
回傳欄位說明
欄位 類型 說明
data_list array 待辦詳情列表,最多 20 筆
data_list[].todo_id string 待辦 ID
data_list[].todo_status number 待辦狀態:0-已完成,1-進行中,2-已刪除
data_list[].content string 待辦內容
data_list[].follower_list.followers array 分派人列表
data_list[].follower_list.followers[].follower_id string 分派人 ID(即 userid)— 展示前需透過 wecomcli-contact 轉為姓名
data_list[].follower_list.followers[].follower_status number 分派人狀態:0-拒絕,1-接受,2-已完成
data_list[].follower_list.followers[].update_time string 分派人狀態更新時間
data_list[].creator_id string 建立人 ID — 展示前需透過 wecomcli-contact 轉為姓名
data_list[].user_status number 目前使用者狀態
data_list[].remind_time string 提醒時間
data_list[].create_time string 建立時間
data_list[].update_time string 更新時間

3. 建立待辦 (create_todo)

建立一個新的待辦事項,可指定內容、分派人和提醒時間。

執行命令
wecom-cli todo create_todo '<json格式的入參>'
入參說明
參數 類型 必填 說明
content string 待辦內容
follower_list object 分派人列表,格式見注意事項第 6 條
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"
}
回傳欄位說明
欄位 類型 說明
todo_id string 新建立的待辦唯一 ID

4. 更新待辦 (update_todo)

修改已有待辦事項的內容、分派人、狀態或提醒時間。

執行命令
wecom-cli todo update_todo '<json格式的入參>'
入參說明
參數 類型 必填 說明
todo_id string 待辦 ID
content string 新的待辦內容
follower_list object 新的分派人列表(全量替換,非追加),格式見注意事項第 6 條。若要新增分派人,需先查出現有分派人,合併後一起提交
todo_status number 新的待辦狀態:0-已完成,1-進行中,2-已刪除。刪除請使用 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"
}

5. 刪除待辦 (delete_todo)

刪除指定的待辦事項。

執行命令
wecom-cli todo delete_todo '<json格式的入參>'
入參說明
參數 類型 必填 說明
todo_id string 待辦 ID
呼叫範例
wecom-cli todo delete_todo '{"todo_id": "TODO_ID"}'
回傳格式
{
    "errcode": 0,
    "errmsg": "ok"
}

刪除操作不可撤銷,執行前應向使用者確認。


6. 變更使用者待辦狀態 (change_todo_user_status)

更改目前使用者在某個待辦中的狀態(拒絕/接受/已完成)。

執行命令
wecom-cli todo change_todo_user_status '<json格式的入參>'
入參說明
參數 類型 必填 說明
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"
}
回傳欄位說明
欄位 類型 說明
errcode number 回傳碼,0 表示成功
errmsg string 錯誤資訊,成功時為 "ok"

典型工作流

完整的工作流步驟、命令範例和展示格式詳見 examples/workflows.md

工作流 適用場景 關鍵要點
工作流 1:查看待辦列表 「看看我最近的待辦」 標準三步:get_todo_list → get_todo_detail → contact 轉姓名;檢查 has_more 分頁
工作流 2:按時間範圍查詢 「這個月建立的待辦有哪些?」 傳入 create_begin_time / create_end_time 過濾,後續同工作流 1
工作流 3:建立待辦並分派 「幫我建立一個待辦,讓張三完成需求文件」 先透過 wecomcli-contact 查 userid,再 create_todo 帶 follower_list
工作流 4:標記待辦完成 「把這個待辦標記為完成」 區分場景 A(改 todo_status=0)和場景 B(改 user_status=2)
工作流 5:更新待辦 「把提醒時間改到下週五」 先查列表+詳情定位目標,再 update_todo
工作流 6:刪除待辦 「刪掉那個待辦」 刪除前必須向使用者確認,不可撤銷
工作流 7:分頁取得 待辦數量超過單頁上限 透過 cursor 循環拉取,未拉完必須提醒使用者

注意事項

  1. todo_id 來源規則

    • todo_id 必須來自 get_todo_list 回傳的結果,禁止自行推測或建構
    • 使用者通常提供待辦內容描述而非 ID,應先透過 get_todo_list 查列表再匹配
    • 若匹配到多個相似待辦,展示候選列表讓使用者確認
  2. follower_id 來源規則

    • follower_iduserid,必須透過 wecomcli-contact 技能的 get_userlist 介面取得
    • 禁止根據使用者姓名自行猜測 userid
    • 若搜尋結果有多個同名人員,展示候選列表讓使用者選擇
  3. 人員 ID 必須轉姓名

    • 回傳結果中的 follower_idcreator_id 是系統內部標識,使用者無法識別
    • 展示待辦詳情前,先透過 wecom-cli contact get_userlist '{}' 取得通訊錄
    • 用通訊錄的 userid 匹配 follower_id / creator_id,用 name 替換展示
    • 如果通訊錄中找不到某個 ID,展示時標註「未知使用者(ID:xxx)」
  4. 時間格式

    • 所有時間參數使用 YYYY-MM-DD HH:mm:ss 格式
    • 使用者說「明天」、「下週一」等相對時間時,根據目前日期推算具體日期
  5. 狀態值含義

    • 待辦狀態(todo_status):0-已完成,1-進行中,2-已刪除
    • 使用者狀態(user_status):0-拒絕,1-接受,2-已完成
    • 分派人狀態(follower_status):0-拒絕,1-接受,2-已完成
  6. follower_list 的格式(作為輸入參數的時候)

    "follower_list": {
        "followers": [
            {
                "follower_id": "FOLLOWER_ID",
                "follower_status": 1
            }
        ]
    }
    

    follower_id 即 userid,需要透過 wecomcli-contact 查詢取得,禁止自行猜測或建構。

  7. 破壞性操作確認

    • 刪除待辦(delete_todo)前必須向使用者確認
    • 變更狀態為「拒絕」(user_status=0)前建議向使用者確認
  8. 必須查詳情

    • get_todo_list 回傳的是概要資訊(不含內容和分派人),拿到列表後必須緊接著呼叫 get_todo_detail 取得完整內容再展示給使用者,不要只展示列表概要
  9. 分頁未拉完必須提醒

    • 如果回傳的 has_moretrue,在向使用者展示結果時必須明確說明「還有更多待辦未顯示」並詢問使用者是否需要繼續查看
  10. 單次詳情上限

    • todo_id_list 最多傳 20 個 ID,超過需要分批請求
  11. 錯誤處理

    • errcode 不為 0,說明介面呼叫失敗,告知使用者 errmsg 中的錯誤資訊
  12. 通訊錄查詢

    • 涉及分派人時,需先透過 wecomcli-contact 技能的 get_userlist 介面取得全量通訊錄成員,再按姓名/別名本地篩選匹配出對應的 userid。該介面無入參,回傳目前使用者可見範圍內的成員列表(含 userid, name, alias