logo
開發者文件
搜尋
對話互動

對話互動

概述

Work 的對話互動基於 Agent Loop 驅動。使用者發送訊息後,Agent 進入自主推理-執行迴圈:分析需求 → 呼叫工具 → 取得結果 → 繼續推理,直到任務完成或達到退出條件。整個過程透過串流事件即時呈現在介面上。


訊息類型

對話訊息流中包含以下類型:

訊息類型 渲染方式 說明
使用者訊息 右對齊氣泡 使用者發送的文字、附件
助理文字 左對齊 Markdown 渲染 Agent 的文字回覆,支援程式碼高亮、數學公式、表格
工具呼叫 ToolCallGroup 摺疊面板 工具名稱 + 輸入參數 + 執行狀態 + 輸出結果
思維過程 Thinking 摺疊區塊 Agent 的推理過程(原生 thinking 模型,如 Claude)
任務管理 TaskPanel 任務面板 結構化任務清單(待辦/進行中/已完成)
子代理活動 SubagentToolRow 子代理執行過程,帶特殊標記
提問互動 QuestionWizard Agent 向使用者發起的結構化提問

工具呼叫展示

當 Agent 呼叫工具時,介面展示 ToolCallGroup 元件:

工具呼叫展示-CN

展示元素 說明
工具名稱 呼叫的工具識別(如 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 在執行你不期望的操作時:

  1. 點擊訊息流底部的 停止 按鈕(或按 Esc
  2. Agent 會在當前工具執行完成後停止
  3. 已執行的操作(如已建立的檔案)不會自動撤銷
  4. 你可以繼續對話指示 Agent 撤銷之前的操作

注意:正在執行的 Bash 命令會被終止(發送 SIGTERM),但已完成的命令效果無法自動撤銷。


工具呼叫失敗時怎麼辦

失敗原因 解決方法
權限不足 Agent 會說明需要權限,你可以在彈窗中允許,或調整工具安全等級
檔案不存在 檢查路徑是否正確,可以讓 Agent 先用 Glob/List Directory 確認檔案位置
命令執行出錯 Agent 通常會自動分析錯誤並重試。如果迴圈失敗,手動提供更多上下文
網路逾時 Web Fetch 等網路工具可能因網路問題失敗,稍後重試即可

相關文件