跳到內容

在聊天裡交辦任務

在 LINE、Telegram、Discord、Slack 或 dashboard 的 WebChat 對話裡輸入 /交辦 @AI員工 要做的事(也可以打 /assign 或全形的 /交辦),gateway 會以你的名義替那位 AI 員工建立一筆目標任務,進度和結果會回到同一個對話。v1.76.0 起提供。

用 @名字 任務 呼叫員工仍然只是一般對話(見用 @ 呼叫 AI 員工),只有這個指令會建立任務。

你傳 結果
/交辦 @業務專員 整理報價單 替這位員工建立目標任務,回覆裡有任務編號。
/交辦 @業務專員 整理報價單 || 含三家比價 || 時限:24h 和 /goal 一樣的 || 段落:驗收標準、時限:/duration:(1 到 720 小時,例如 24h、3天)、邊界:/risk:(不可以做的事;只有管理員能設定,其他人寫了會被拿掉並附一句說明,改套部署的預設邊界)、想一想/plan(先產生計畫,等你在 dashboard 核准)。沒寫驗收標準時,任務內容本身就是驗收依據。
/交辦 列出你可以交辦的 AI 員工。LINE 上是快速回覆按鈕,點一下會送出 /交辦 @名字。
/交辦 @業務專員 bot 會問你要交辦什麼。只有你在這個對話的下一則訊息會成為任務內容,10 分鐘內有效;再下一則就回到一般對話。如果下一則改用 @ 叫了別人,等待就取消。
/交辦 狀態(/assign status) 你交辦、還沒結束的任務(最多 20 筆),新的在前,列出員工、狀態和標題。
/交辦 @部分名字 … 名字不完整或對到多位時,列出符合而且你可以交辦的員工。

Telegram 群組可以用 /assign@你的Bot …。Slack 的斜線指令請用 /duduclaw assign …,回覆只有你看得到。

確認訊息長這樣:

📌 已交辦給【業務專員】,任務 #1a2b3c4d
內容:整理報價單
(依組織關係交辦:王小明的 AI 員工)
進度和結果會回到這個對話。輸入「/交辦 狀態」查看你交辦的任務。

括號那一行只在交辦權限來自組織關係時出現。通訊軟體上的文字跟著 [general] default_language(繁中、英文或日文)。

發話者 可以交辦給
dashboard 管理員 所有運作中的員工
dashboard 帳號(在 WebChat 登入,或在通訊軟體上經過驗證的通道身分對應到帳號) 帳號以 Owner 或 Operator 綁定的員工;主管另外可以交辦給團隊員工,條件是經由部屬推導出的權限達到 Operator
同一個帳號,對象是 Viewer 綁定的員工、對話的預設員工或開放給外部聯絡人的員工 不能交辦:可以和他們對話,bot 會說你沒有交辦任務的權限
其他人(LINE 好友、Telegram 使用者、網站對話框訪客) 不能交辦:不管打了哪個名字,bot 都請你先到 dashboard 綁定通訊帳號(個人設定 → 通道身分),回覆不會透露有哪些員工

dashboard 帳號如果點名一位完全碰不到的員工,得到的拒絕和 @ 呼叫被拒相同。LINE 和 Telegram 上,同一個對話裡同一位發話者的拒絕每 10 秒最多回一次,期間重複的指令不會回覆。每次指令都即時讀取你的權限;/交辦 @名字 之後等待的那一則訊息送到時會再檢查一次,所以綁定或主管關係一改就生效。

任務由 gateway 直接寫入,中間沒有 AI 模型。個人版沒有其他帳號,擁有者(管理員)照常可以用 /交辦。

欄位 內容
assigned_to 員工
on_behalf_of user:<你的 dashboard 帳號 ID>,取自驗證過的身分,絕不取自訊息內容
created_via 通道(line、telegram、webchat…)
created_by assign:<通道>
source_channel、source_chat_id 這個對話,目標任務的進度(開始執行、每一輪、需要你決定、完成)會推回這裡
kind goal

舊任務沒有 on_behalf_of,不會回填。在 dashboard 建立的任務(tasks.create、交辦目標)也會記下你,created_via = dashboard;綁定帳號的人在聊天打 /goal 也會記下帳號(權限規則不變)。

員工執行時,工作提示會寫出交辦人,只有顯示名稱和部門(例如 交辦人: 王小明(業務部)),不會放帳號 ID。

平台有穩定的訊息 ID 時,任務編號由它推出:LINE 用 webhook 事件 ID,Telegram 用訊息 ID,WebChat 用每次送出時產生的用戶端 ID。webhook 或 update 重送、LINE 持久收件重跑同一則訊息、同一個 WebChat 訊息框送了兩次,都不會建立第二筆任務。Discord、Slack 和 webhook 通道目前沒有這種 ID。

儀表板的目標表單裡,風險邊界欄只有管理員看得到;其他人呼叫 tasks.goal_create 帶非空白的 risk_boundary 會被拒絕,因為任務自己的邊界會取代 [goal_defaults] baseline_boundary。

  • 在通訊軟體裡,進度會回到對話,/交辦 狀態 列出還沒結束的任務。
  • WebChat 的回覆附一張任務卡片,看進度 會開啟「目標」頁的「我交辦的」。WebChat 不會收到進度推播。
  • 「目標 → 我交辦的」(tasks.list_page 帶 on_behalf_of: "me")列出你交辦的所有任務,不分員工。就算你只經由部屬碰得到那位員工,也看得到任務內容(說明、驗收標準、結果)。伺服器從你登入的身分換算「me」,在這個欄位帶別人的帳號 ID 會被忽略。任務詳細頁仍然需要直接綁定那位員工。

從聊天交辦,每個人每 10 分鐘最多 10 件,還沒結束的最多 30 件;超過時回覆會說明,不會建立任務(「想一想」的任務一樣算)。儀表板建立的任務不計入。上限可以在 config.toml 調整:

[goal_defaults]
chat_assign_per_window = 10 # 每 10 分鐘,0 到 1000;0 代表關閉聊天交辦
chat_assign_max_open = 30 # 從聊天交辦、還沒結束的任務,0 到 1000

沒設定或超出範圍時用預設值。

工作可以排到之後再交辦,或固定週期重複交辦。設定當下不會建立任務;每次時間到,閘道會以你的名義建立任務(或目標),跟你在那個時間親自交辦一樣。

在聊天裡,加一段 時間: 或 排程:(也接受 schedule:、at:、when:):

你傳的訊息 排程
/交辦 @業務專員 寫週報 || 時間:每週一 9:00 每週一 09:00
… || 排程:平日 早上9點 週一到週五 09:00
… || 排程:每週一、三、五 下午2點半 週一、三、五 14:30
… || 排程:每天 18:00 / daily 18:00 每天
… || 排程:每小時 / hourly 每小時整點
… || 時間:明天 15:00 / 10/25 14:00 / 2026-10-25 14:00 / tomorrow 15:00 一次
… || 排程:cron 0 9 * * 1 cron 表達式(只限管理員)

週期沒寫時間就是 09:00;沒寫年份、今年已經過了的日期算明年。聊天裡的時間以閘道主機的時區解讀,確認訊息會寫出它讀到的排程和下次執行時間。其他 || 段落(驗收標準、時限:、想一想)每次執行都會套用。

  • /交辦 排程(/assign schedules)列出你的排程:編號、AI 員工、時間、狀態。
  • /交辦 排程 暫停 <編號>、恢復 <編號>、刪除 <編號>(pause、resume、remove)管理你自己的排程。編號是列表上 8 個字元的 #…。

在 dashboard,交辦面板多了「什麼時候做」:現在(預設)、指定時間一次、每天、平日、每週選幾天、每小時,管理員另有自訂 cron。時間以你瀏覽器的時區解讀。目標 → 我交辦的 有「排程」區塊,顯示下次與上次執行,可以暫停/恢復/刪除;管理員可以切換成所有人的排程。RPC 方面,tasks.goal_create 與 tasks.create 接受 schedule({kind:"once", at}、{kind:"daily"|"weekdays", time}、{kind:"weekly", days:[1..7], time}、{kind:"hourly", minute}、{kind:"cron", expr},或一句像 "每週一 9:00" 的文字)與 schedule_timezone(IANA);assign_schedules.list(scope: "mine" | "all")、.pause、.resume、.remove(id)用來管理。

每次執行前都會重新確認你的權限。 建立排程需要的權限和立即交辦一樣。每次執行前閘道會重讀你的帳號:帳號被停用或離職、綁定被拿掉、你透過的那位部屬已經不在你的團隊(或設定 cron/邊界的管理員已不是管理員),這次就不執行,排程以原因暫停,並傳訊息到你綁定的通訊帳號。AI 員工被停用或刪除時一樣會暫停。恢復時會重新確認建立者的權限(管理員幫別人恢復,不會把自己的權限借給那個排程)。只有建立者和管理員看得到、管得到排程;別人的編號一律回「找不到」。

每次執行建立的任務會記錄 on_behalf_of = user:<你>、created_via(dashboard 或聊天通道),聊天建立的排程還會記錄對話,進度會回到那裡。目標的 created_by 是 goal:schedule;看板任務的 created_by 保留你的帳號 id。

清單最多顯示 200 筆,優先列出啟用/暫停的排程,再列最近完成紀錄,避免歷史紀錄把仍需要管理的排程擠掉。

上限:

  • 每人最多 20 個啟用或暫停中的排程。
  • 非管理員最短一小時執行一次;管理員最短 5 分鐘。
  • 調高最短間隔後,既有排程在下次執行或恢復時也會檢查;不符合就暫停,需建立間隔較長的排程。
  • 暫停或刪除若先於該輪任務落地,就不會建立任務;已落地的任務仍需在任務頁另外停止。
  • 同一個排程上一次的任務還沒結束,這一輪就跳過(previous_open),不會越積越多。
  • 錯過超過 24 小時(閘道停機)的那一輪直接跳過,不補跑;停機較短時,錯過的那一輪補跑一次。
  • 一次性排程至少要一分鐘後、一年內。
  • 排程執行的任務不計入上面的聊天交辦上限;它們和其他你交辦的任務一樣出現在我交辦的與 /交辦 狀態。
[goal_defaults]
assign_schedule_max_active = 20 # 每人,0..200
assign_schedule_min_interval_minutes = 60 # 非管理員;只能調高(60..10080)

若設定檔存在但無法讀取、格式錯誤,或排程上限的型別錯誤,系統不會退回較寬鬆的預設:新增與恢復會被拒絕,已到期的排程會等設定修復後再檢查。仍可列出、暫停或刪除排程;儀表板會提示請管理員處理。

排程在 cron 排程器每 30 秒一次的檢查中處理,而且只在持有資料目錄鎖的那個閘道執行。每一輪的任務 id 由排程與時間點推導,閘道重啟或重試都不會重複建立同一輪。

稽核事件:assign_schedule_created、assign_schedule_paused/_resumed/_removed(人操作)、assign_schedule_fired(含任務 id)、assign_schedule_skipped(含原因:access_lost、agent_unavailable、schedule_restricted、previous_open、missed、create_failed)、assign_schedule_auto_paused。

群組裡也能交辦,但限綁定帳號的人,而且群組裡每個人都看得到指令、確認訊息(含任務內容)、每一則進度通知,以及 /交辦 狀態 列出的任務標題(任務的可見範圍不含這個通道時只顯示編號)。LINE 群組開了「只回提及」時,/交辦 和 /assign 算是叫 bot(其他指令仍需提及),/交辦 @名字 之後等待的那一則訊息也算。

  • human_assign(Info):每建立一筆任務記一次,含通道、發話者(user:<帳號 ID>)、任務 ID 和權限來源(via:binding、team:<部屬帳號 ID>:<層數>、admin)。
  • human_assign_refused(Warning):每次拒絕記原因(needs_identity、call_only、denied、rate_limited);未綁定的發話者記成平台 ID 的 HMAC。同一位發話者對同一位員工、同一個原因,一分鐘只記一次。
  • 任務的 goal_loop.created 活動紀錄在 metadata 帶 on_behalf_of、created_via、via。
  • /交辦 @名字 之後的等待只存在記憶體,gateway 重啟就會忘記。LINE 上若在收下你的下一則訊息之後、處理之前重啟,那則訊息會當成一般對話交給預設員工(任何通道上,重啟後再處理一次的訊息都會當成一般對話)。
  • 失敗時只回一句固定的說明,原因只寫進 gateway 日誌。
  • WebChat 交辦的任務不會在聊天裡收到進度,請看「目標」頁。
  • Discord、Slack 和 webhook 通道(WhatsApp、飛書、Teams、企業微信、Google Chat、釘釘)只回文字;只有 LINE 和 WebChat 做過端到端實測。
  • 只經由部屬碰得到員工的主管,在「我交辦的」清單和 /交辦 狀態 看得到任務內容,任務詳細頁則看不到。