對話互動
對話互動
概述
Work 的對話互動基於 Agent Loop 驅動。使用者發送訊息後,Agent 進入自主推理-執行迴圈:分析需求 → 呼叫工具 → 取得結果 → 繼續推理,直到任務完成或達到退出條件。整個過程透過串流事件即時呈現在介面上。
訊息類型
對話訊息流中包含以下類型:
| 訊息類型 | 渲染方式 | 說明 |
|---|---|---|
| 使用者訊息 | 右對齊氣泡 | 使用者發送的文字、附件 |
| 助理文字 | 左對齊 Markdown 渲染 | Agent 的文字回覆,支援程式碼高亮、數學公式、表格 |
| 工具呼叫 | ToolCallGroup 摺疊面板 | 工具名稱 + 輸入參數 + 執行狀態 + 輸出結果 |
| 思維過程 | Thinking 摺疊區塊 | Agent 的推理過程(原生 thinking 模型,如 Claude) |
| 任務管理 | TaskPanel 任務面板 | 結構化任務清單(待辦/進行中/已完成) |
| 子代理活動 | SubagentToolRow | 子代理執行過程,帶特殊標記 |
| 提問互動 | QuestionWizard | Agent 向使用者發起的結構化提問 |
工具呼叫展示
當 Agent 呼叫工具時,介面展示 ToolCallGroup 元件:

| 展示元素 | 說明 |
|---|---|
| 工具名稱 | 呼叫的工具識別(如 Bash、Read File) |
| 輸入參數 | 工具接收的參數(可摺疊查看) |
| 執行狀態 | loading(旋轉圖示)/ success(綠色勾)/ error(紅色叉) |
| 輸出結果 | 工具回傳的內容(長內容可摺疊) |
多個工具呼叫按執行順序分組展示。並行執行的工具會在同一組中顯示。
串流輸出
Agent 的回覆透過串流事件即時推送到介面:
| 事件類型 | 說明 |
|---|---|
text_delta |
文字片段,逐字追加到訊息區 |
thinking |
思維過程片段(支援 Anthropic 原生 thinking) |
tool_use_start |
工具呼叫開始,展示工具名稱和參數 |
tool_result |
工具執行結果,更新狀態圖示 |
error |
錯誤訊息 |
done |
本輪完成 |
使用者可以在串流輸出過程中看到 Agent 的即時推理和操作,提供透明的執行體驗。
工作階段管理
新建工作階段
點擊左上角「新建對話」按鈕或使用快捷鍵,建立新的工作階段。新工作階段從歡迎頁開始,或直接輸入訊息發起對話。
工作階段清單操作
| 操作 | 說明 |
|---|---|
| 搜尋 | 按關鍵詞過濾工作階段標題 |
| 置頂 | 將重要工作階段固定在清單頂部 |
| 資料夾分組 | 將工作階段組織到自訂資料夾中 |
| 刪除 | 移除工作階段(不可復原) |
| 重新命名 | 修改工作階段標題 |
工作階段快照與恢復
APP 端支援工作階段快照持久化,防止意外中斷導致對話遺失:
| 快照策略 | 說明 |
|---|---|
every_tool_round(預設) |
每次工具呼叫後儲存 |
every_round |
每輪 LLM 互動後儲存 |
manual |
僅手動觸發儲存 |
快照儲存為 JSON 檔案(原子寫入,.tmp + rename 防損毀),可透過 resumeSessionId 恢復中斷的工作階段。
本地對話與遠端對話
在多節點場景下,工作階段清單中的對話會顯示不同的來源圖示:
| 圖示 | 含義 |
|---|---|
| 本地 APP 節點發起或執行的對話 | |
| 遠端節點執行的對話 | |
| 來自 IM 渠道(Telegram、WeChat 等)的對話 |
這幫助使用者快速區分對話的執行來源。
Agent Loop 複雜任務能力
Agent Loop 使 Work 能夠處理需要多步操作的複雜任務:
範例場景:使用者要求「分析專案目錄結構並生成架構文件」
輪次 1: Agent 呼叫 List Directory 瀏覽專案結構
輪次 2: Agent 呼叫 Glob Files 搜尋關鍵設定檔
輪次 3: Agent 呼叫 Read File 讀取核心檔案內容
輪次 4: Agent 呼叫 Search Files 查找模組相依關係
輪次 5: Agent 綜合分析並生成 Markdown 架構文件
輪次 6: Agent 呼叫 Write File 儲存文件到指定路徑
輪次 1: Agent 呼叫 List Directory 瀏覽專案結構
輪次 2: Agent 呼叫 Glob Files 搜尋關鍵設定檔
輪次 3: Agent 呼叫 Read File 讀取核心檔案內容
輪次 4: Agent 呼叫 Search Files 查找模組相依關係
輪次 5: Agent 綜合分析並生成 Markdown 架構文件
輪次 6: Agent 呼叫 Write File 儲存文件到指定路徑
此代碼塊在浮窗中顯示
整個過程 Agent 自主決策呼叫哪些工具、按什麼順序執行,使用者無需逐步指導。預設最大 25 輪迴圈,斷路器機制保證異常時自動停止。
技術詳情請參考 Agent 迴圈引擎。
提示技巧:如何更有效地與 Agent 對話
| 技巧 | 範例 | 效果 |
|---|---|---|
| 明確目標 | 「幫我重構 utils.ts 中的 formatDate 函式,改為使用 date-fns」 | Agent 準確定位目標和方案 |
| 分步請求 | 「先列出所有 .tsx 檔案,然後告訴我哪些使用了 class 元件」 | Agent 按步驟執行,結果更可控 |
| 指定工具 | 「請使用 Bash 執行 npm test」 |
Agent 直接使用指定工具 |
| 要求確認 | 「先告訴我你的計畫,確認後再執行」 | 防止 Agent 直接修改檔案 |
| 提供上下文 | 「這是一個 React + TypeScript 專案,使用 Vite 建置」 | Agent 給出更貼切的建議 |
如何中止正在執行的任務
當 Agent 在執行你不期望的操作時:
- 點擊訊息流底部的 停止 按鈕(或按
Esc) - Agent 會在當前工具執行完成後停止
- 已執行的操作(如已建立的檔案)不會自動撤銷
- 你可以繼續對話指示 Agent 撤銷之前的操作
注意:正在執行的 Bash 命令會被終止(發送 SIGTERM),但已完成的命令效果無法自動撤銷。
工具呼叫失敗時怎麼辦
| 失敗原因 | 解決方法 |
|---|---|
| 權限不足 | Agent 會說明需要權限,你可以在彈窗中允許,或調整工具安全等級 |
| 檔案不存在 | 檢查路徑是否正確,可以讓 Agent 先用 Glob/List Directory 確認檔案位置 |
| 命令執行出錯 | Agent 通常會自動分析錯誤並重試。如果迴圈失敗,手動提供更多上下文 |
| 網路逾時 | Web Fetch 等網路工具可能因網路問題失敗,稍後重試即可 |
相關文件
- 多模態輸入輸出 — 檔案輸入與預覽能力
- 子代理 — 任務分解與委託
- Agent 迴圈引擎 — 底層迴圈機制
- 上下文 5 層壓縮 — 長對話上下文管理
