Eigent v1.0.4 版本更新說明:技能與連接器儀表板、穩定的多輪執行
在同一個介面中瀏覽與設定資源,讓長時間執行的代理任務可預期地完成

Eigent v1.0.4 是一次讓工作區更易讀的發布。技能與連接器過去是層層堆疊的設定卡片,現在成為圖書館式的儀表板,擁有真正的集合檢視、詳細頁面,以及 Home、技能與連接器共用的頁面框架。
在這層介面之下,本次發布也修補了一組在任務執行時間變長後才浮現的問題:模型多輪呼叫之間指令遺失、任務在空間內複製儲存庫後檢查點失敗、連接器顯示的狀態與真正執行它的執行環境不一致,以及應用程式在最後一個視窗關閉後沒有乾淨結束。
🧩 作為管理儀表板的技能與連接器
管理一個技能,不應該意味著在設定頁面裡不停捲動,直到找到正確的卡片。
感謝 @Douglasymlai 在 PR #1896 中將技能與連接器重建為集合與詳細介面,也感謝 @4pmtong 的審查。
技能現在是一個圖書館式儀表板。每個技能都能開啟專屬詳細頁面,顯示它的來源、擁有的存取權限、是否啟用,以及包含哪些檔案。連接器遵循同樣的模型:集合總覽、新增與瀏覽流程,以及帶有圖示、名稱、來源和安裝或儲存操作的檔案頁首。
新增內容:
- 技能庫儀表板 — 以集合方式瀏覽技能,而不是一疊設定卡片
- 技能詳細檢視 — 來源與存取標籤、啟用狀態和檔案瀏覽器集中在一處
- 連接器集合與探索 — 從瀏覽可用連接器到完成設定的路徑更清晰
- 連接器詳細頁首 — 圖示、名稱、來源與安裝或儲存操作以檔案頁形式呈現
- 詳細側邊欄 — 相關上下文始終停留在你正在檢視的資源旁邊
真正的差別在於可檢視性。你可以在起始頁面內回答「這個技能從哪來、它能存取什麼、裡面有什麼」。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1896
🏠 Home、技能與連接器共用同一頁面框架
當你每天都要在同一個應用程式裡穿梭時,一致性本身就是功能。
v1.0.4 將 Home 與設定統一到一個頁面框架上,由共用基礎元件構成——集合工具列、麵包屑、內容欄和側邊欄返回頁首。Home 的清單、空狀態和空間詳細分頁,現在與技能和連接器採用同一套集合版面。
改進內容:
- 共用版面 — Home、技能與連接器使用相同的頁首、麵包屑和閱讀欄
- 一致的集合清單 — 中心清單與空間詳細分頁遵循同一種版面模型
- 更清晰的空狀態 — 未設定的介面會自我說明,而不是顯示一塊空白面板
- 可預期的導覽 — 麵包屑與返回頁首在任何位置行為一致
一旦頁面框架統一,在 Home、空間、技能和連接器之間切換就不再需要重新認識每個頁面。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1896
🔁 能保住指令的多輪代理工作
一個長任務是一連串輪次,而每一輪都需要同樣的可信指令。
感謝 @4pmtong 在 PR #1883 中修正了 Responses API 鏈式請求上的 Prompt Guard 失敗問題。
鏈條中的第一個請求是成功的,這也是這個回歸一直沒被發現的原因。後續請求重用了 previous_response_id,但頂層 instructions 不會自動傳遞——於是可信的代理提示詞會在執行中途悄悄消失。
修正內容:
- 每個請求都帶指令 — 可信的代理提示詞透過 Responses API
instructions在每一輪送出,而不只是第一輪 - 不再重複提示內容 — system 與 developer 項目在提升為
instructions後從輸入中移除,避免重複 token 與重複計費 - Prompt Guard 保持完整 — 針對不可信提示詞的既有拒絕訊息予以保留
這類缺陷只有在長度足夠時才會顯現。短任務看起來一切正常,故障其實藏在第三輪。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1883
🧰 具有動態參數結構的工具
並非每個工具都有固定的形態,嚴格的結構驗證不應該拒絕那些沒有固定形態的工具。
感謝 @fengju0213 在 PR #1897 中將 camel-ai[eigent] 升級到 0.2.91a7 並更新了後端鎖定檔。
新的 CAMEL 版本包含了帶開放對應的工具參數所需的嚴格結構回退機制。有了它,PlanningWorktreeToolkit.planning_exit_plan_mode 得以保留其結構值 additionalProperties,並以 strict: false 送出,從而在保留該工具真正需要的動態字典欄位的同時,避免供應商端回傳 400。
帶有開放式參數的工具現在可以在強制嚴格結構的供應商上正常運作,而不會在呼叫時失敗。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1897
🌿 Git 支援的空間中的巢狀儲存庫
v1.0.3 為空間帶來了 Git 版本歷史。v1.0.4 讓這份歷史在任務於空間內複製儲存庫時依然成立。
感謝 @4pmtong 在 PR #1902 中為工作區檢查點提供了巢狀儲存庫支援。
Git 會把未追蹤的巢狀儲存庫回報為單一目錄項目,例如 ?? child-repository/。檢查點流程會把該路徑正規化為 child-repository,導致複製完成之後路徑驗證失敗——工具結果被標記為未知,執行隨之失敗。
修正內容:
- 巢狀儲存庫是獨立邊界 — 經過驗證的未追蹤巢狀 Git 根目錄被排除在父層檢查點與狀態歸屬之外
- 不隱含修改 gitlink 或忽略檔 — 不會為了容納子儲存庫而悄悄重構父儲存庫
- 父層狀態保持不變 — 檢查點完成時 HEAD、狀態權杖與已追蹤路徑均不受影響
- 子儲存庫內容完好 — 巢狀儲存庫及其提交得以保留
- 工作樹安全性保留 — 當隔離工作樹中仍存在未合併的巢狀儲存庫時不會被清理
把儲存庫複製進空間是再普通不過的代理工作。本次發布之後,它不會再終結整個執行。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1902
🔌 與執行環境一致的連接器狀態
一個回報錯誤狀態的連接器,比什麼都不回報更糟糕。
來自 @4pmtong 的兩項修正分別應對同一問題的兩個方向。
網頁搜尋在需要設定時反而被隱藏。 對於預設模型為自訂模型的用戶,在啟用 Querit 或設定 Google Search 憑證之前,網頁搜尋都被視為未連接——而連接器總覽會濾掉所有未連接的內建連接器。由於該列同時也是進入其設定面板的入口,受影響的用戶根本無法完成設定。網頁搜尋現在會保持可見,並顯示真實狀態未連接,而受管模型仍保持既有的已連接狀態。其他未連接的內建連接器的過濾行為維持不變。
Slack 在未連接時卻顯示已連接。 在託管模式下,設定介面把本機 Slack 設定群組的存在當作有效連線,但託管任務透過 Connector Gateway 執行 Slack 動作——而同一用戶在那裡可能根本沒有 Slack 連線。結果是先看到已連接標記,隨後在執行時收到找不到連線的錯誤。新用戶流程由 Connector Gateway 擁有的內建連接器,現在遵循集中策略:啟用 Gateway 時,內建 Slack 會從連接器頁面、聊天連接器選擇器和新建 Worker 的工具選擇中隱藏。停用 Gateway 時,內建 Slack 仍可用於純本機執行環境。
無論哪種情況,既有的 Slack 工具組執行、已存設定、已儲存的 Worker 相容性與 Slack 觸發器憑證都會繼續運作。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1890
🔗 PR: https://github.com/eigent-ai/eigent/pull/1892
🖥️ 最後一個視窗關閉時乾淨結束
關閉應用程式就應該結束應用程式。
感謝 @4pmtong 在 PR #1891 中修正了結束生命週期。關閉唯一的視窗現在會在所有平台上乾淨地結束 Eigent,本機後端也隨之關閉。
修正內容:
- 統一的結束路徑 — 原生視窗關閉、視窗關閉 IPC 與關閉視窗選單指令全部走同一條受保護的
quit-app流程 - macOS 在最後一個視窗時結束 —
window-all-closed現在在 macOS 上也會觸發結束,與 Windows 和 Linux 一致,因此before-quit能清理本機後端 - 安全拆解 — 保留繫結的
webContents參照,而不是從已銷毀的BrowserWindow中讀取 - 跳過已銷毀物件 — 已銷毀的視窗與 web contents 不再執行監聽器移除,協調器參照在拆解前先行清空
開發者也享有同樣的好處:npm run dev 現在會正常終止,而不是在視窗關閉後留下一個仍在執行的後端。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1891
🧹 可靠完成的網頁生成任務
有些網頁生成任務無法終止。原因最終被證實是兩件事疊加。
感謝 @4pmtong 在 PR #1907 中提供的發布安全修正。
Eigent 不再需要把生成內容上傳到舊版遠端部署服務,因此 Web Deploy Toolkit 從 Workforce 開發者代理與單一代理組裝中移除,部署相關描述也從開發者代理提示詞、Workforce 協調器描述和工作流程能力清單中刪去。仍然請求 web_deploy.enabled=true 的舊版工具組設定會被忽略。web_deploy_toolkit.py 及其歷史算繪支援仍保留在程式碼庫中以備將來使用。
第二個原因是時間。終端背景清理的檢查點預算從 5 秒提高到 30 秒,讓已停止的預覽伺服器有足夠時間釋放寫入租約,並在執行收尾前完成工作區 Git 檢查點。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1907
⚙️ 給貢獻者的更快護欄
緩慢的 CI 是對每一位提交拉取請求的人課稅。
前端護欄作業過去經常耗時 20 到 30 分鐘,因為它會在停用快取的情況下,為基準提交和拉取請求提交各跑一遍完整的 Vitest 套件,然後針對本就包含已知失敗與 29 秒逾時的基準重試失敗案例。
感謝 @4pmtong 在 PR #1898 中用聚焦執行器替換了這套全量比對。
改進內容:
- 變更測試執行器 — 只執行本次變更新增或修改的前端測試檔案
- 快檢先行 — 型別、Electron、設計系統與格式檢查在 Vitest 之前執行
- 取消被取代的執行 — 新的推送會取消同一拉取請求或分支上先前的 Test 工作流程執行
- 更短的逾時 — 前端護欄預算從 30 分鐘降到 15 分鐘
在針對 PR #1891 所合併變更的重播中,變更測試執行器在 1.07 秒內執行了 4 個測試檔案、134 個測試。
🔗 PR: https://github.com/eigent-ai/eigent/pull/1898
🔁 既有工作的相容性
升級到 v1.0.4 後,既有的空間、工作階段、任務、技能設定、已儲存的 Worker 和連接器設定仍然可用。預設體驗無需額外設定。
純本機整合獲得明確保留。當 Connector Gateway 被停用時,內建 Slack、已儲存的 Worker 與 Slack 觸發器繼續運作,且兩種模式下已存的 Slack 設定都不會被更動。
❤️ 一個能自我說明的工作區
Eigent v1.0.4 帶來:
- 技能成為圖書館式儀表板,具備來源、存取權限、啟用狀態與檔案詳細檢視
- 連接器成為集合、探索與檔案詳細流程
- 共用頁面框架,讓 Home、技能與連接器擁有一致的麵包屑、側邊欄、內容欄與空狀態
- 可信的代理指令在 Responses API 鏈式輪次中得以保留,且不重複提示內容
- 對具有動態參數結構的工具提供嚴格結構相容性
- 工作區檢查點將巢狀 Git 儲存庫視為獨立邊界
- 網頁搜尋在仍需設定時保持可被探索
- Slack 透過真正會執行它的連接器路徑呈現
- 最後一個視窗關閉時應用程式與本機後端乾淨結束
- 更可靠的網頁生成任務完成與背景程序清理
- 前端 CI 護欄從半小時縮短到幾分鐘
這次發布的主題是可讀性。儀表板告訴你一個技能能存取什麼。連接器狀態告訴你哪個執行環境會執行它。檢查點告訴你哪個儲存庫擁有某項變更。而長時間執行的任務,會一直保有它開始時的指令。
能被檢視的工作,才是能被信任的工作。
🔗 發布版本: https://github.com/eigent-ai/eigent/releases/tag/v1.0.4
🔗 完整變更日誌: https://github.com/eigent-ai/eigent/compare/v1.0.3...v1.0.4
讓我們繼續建構。
Recent Posts

Meta Muse:預訂、購物、議價的個人 AI 代理
Meta Muse 是一款個人 AI 代理,可透過對話介面預訂旅程、購買商品及協商帳單。本文涵蓋其功能、定價、安全性及比較分析。

Claude Fable 5.1 與 Mythos 5.1:全新功能詳解
Claude Fable 5.1 與 Mythos 5.1 詳解:同一模型分兩個安全防護層級,附全新基準測試結果、成本降低約 25 至 45%,以及存取詳情。

Gemini 3.8 Flash:編程與 AI 代理的全新升級
Gemini 3.8 Flash 在保持低價的同時,大幅提升編程與代理推理能力,並推出全新 3.8 Flash Cyber 變體。涵蓋基準測試、定價及使用方法。