目標意圖路由器
當你在聊天通道裡叫 agent 做一件實際的工作,它現在會注意到,主動問你要不要把這變成一個有追蹤的目標;但它從來不會自己偷偷建立目標。按鈕永遠由你按下去。
過去只有儀表板能啟動一個自主目標(agent 朝驗收標準工作,卡住就升級給人的那個迴圈)。在任何聊天通道裡,只要不是明確打 /goal 指令,一律當成普通對話處理。於是「幫我把這一季的請款單整理成報表寄出去」這種明明是一件工作、不是一個問題的訊息,得到的只是一句聊天回覆,什麼都沒被追蹤。
目標意圖路由器補上這個缺口。它讀進每一則訊息,判斷這看起來像不像在交辦一件工作,是的話回一個小選單:把這變成目標、先想一想(產出一份計畫等你核准)、或只是聊聊。建立目標要花 token,還會啟動一個自己跑起來的迴圈,所以路由器絕不自動出手,命中最多只產生一則等你確認的建議。這一步確認讓誤判的代價很低:最壞情況也只是多一則你順手劃掉的訊息。
三層由便宜到貴,跟知識路由器是同一套形狀:
- 硬性排除(零成本)。 指令、極短訊息、問句、命中注入掃描的訊息,以及大部分是引用回覆的訊息,一律直接放行到普通聊天。
- 訊號分數(不用 LLM)。 一張固定的計分表:交辦動詞、交付物名詞、多步驟措辭、期限,加分;問號、閒聊標記、簡短跟話,扣分。分數高就直接建議建目標,分數明顯偏低就停在聊天。
- 灰色地帶(小模型)。 落在中間的分數丟給一個語言模型回答一個是非題:這是不是在交辦一件要跑好幾步的工作?有設定本機推理後端就在裝置端跑,雲端成本零;沒有的話就把這個問題併進 agent 本來就要生成的回覆裡,一樣不多花錢。不論哪一種,只要模型不可用或答案解析不出來,路由器一律 fail-open,退回聊天,絕不卡住你的回覆。
確認一則建議
Section titled “確認一則建議”在 Telegram、Discord、Slack、LINE 上,建議會附三顆按鈕(建立目標/想一想/只是聊聊)。其他通道是文字選單,回 1、2、3 就好。選「建立目標」走的路徑跟你自己打 /goal 完全一樣,所有存取檢查與核准關卡照樣套用。選「想一想」會先產出一份計畫,把目標停在等你核准,任何工作都還沒開始。其他任何回覆,或十分鐘沒回應,建議就悄悄消失。
按按鈕、打 /goal、用儀表板建立,三條路最後都匯到同一個建立入口,驗收標準在建立當下就凍結,不管走哪條路都一樣。
在 agent.toml 逐 agent 設定(或在 config.toml 全域設定),區塊是 [goal_intent]:
| 欄位 | 預設 | 意義 |
|---|---|---|
enabled |
true |
總開關。留著開沒關係,因為每次命中都卡在確認這一關。 |
mode |
"auto" |
auto(有本機模型就用,沒有就併進回覆)、local、reply_tag、或 off。 |
t_goal |
65 |
分數到這裡以上,直接建議建目標。 |
t_gray |
30 |
分數低於這裡停在聊天;介於兩者之間進灰色地帶。 |
cooldown_minutes |
30 |
同一段對話裡兩次建議之間的最短間隔。 |
daily_cap |
20 |
每個 agent 每個 UTC 日的建議上限。 |
suggest_ttl_minutes |
10 |
一則待確認的建議等你回覆的時間上限。 |
路由器跑在存取關卡與接手攔截之後,所以它從不放寬一則訊息原本能做的事,只是替一條你本來就能自己走的路提供捷徑。