AgenticSeek、Hermes 與 OpenClaw:記憶、任務觸發與自主優化的技術差異

DKY 技術研究 · 2026-09-02 · 以官方程式碼與文件拆解三種 Agent 架構

一句話結論:AgenticSeek 是「本地任務執行器」,Hermes 是「可長期運作的 Agent 平台」,OpenClaw 是「以訊息、事件與裝置為中心的個人助理 Gateway」。真正的差異不在它們都能不能呼叫 LLM,而在記憶是否可持久化、任務能否被事件喚醒,以及成功經驗能否安全轉成下一次可重用的行為。

先拆開四個常被混在一起的問題

「自主 Agent」這個詞經常把幾種不同能力包在一起。能回答問題,不代表能執行工具;能執行工具,不代表能在隔天記得;能記得,也不代表能把經驗轉成更好的流程。用工程角度看,至少要分成四層:

任務觸發

誰在什麼時候喚醒 Agent?

記憶與狀態

它能保留什麼、如何找回?

工具與編排

它如何規劃並執行動作?

評估與優化

錯誤如何變成下一次的改善?
概念白話解釋常見誤判
工作記憶目前這一輪對話、工具結果與尚未完成的計畫。把對話 append 到檔案,就以為有長期記憶。
長期記憶跨 session 仍會被找回的偏好、環境事實、決策與經驗。檔案存在,不代表系統會在正確時機檢索。
程序記憶把「怎麼做」存成未來可以載入的技能、SOP 或工具流程。把一次成功答案當成可重用的技能。
自主優化觀察結果、找出可泛化的改善、經過檢查後更新記憶或行為。遇到錯誤重試五次,就宣稱 Agent 會自我進化。

三者先放在同一張地圖

比較面向AgenticSeekHermesOpenClaw
產品邊界一個帶 Web UI/CLI 的本地助手應用程式。Agent runtime、工具層、記憶、Skills、Gateway 與多 Agent 協調平台。長駐 Gateway,統一聊天平台、控制介面、裝置節點與 Agent session。
主要輸入Web UI、CLI、FastAPI 的 /queryTelegram、Discord、Slack、WhatsApp、Email、CLI、API、Webhook 與 Cron。WhatsApp、Telegram、Discord、Control UI、CLI、Webhook、裝置與節點事件。
Agent 組成Casual、Coder、File、Browser、Planner 等固定類別。單一 Agent loop 加上可組合 toolset、Skills、MCP、Profiles 與 worker。Gateway session 加上 Skills、Plugins、Nodes、Sub-agent 與自動化工作。
記憶核心每個 Agent 的對話列表與可選 session JSON 儲存。受容量控制的 MEMORY/USER、SQLite session search,以及可插拔記憶提供者。Markdown 日記與長期記憶、混合搜尋、compaction flush、Dreaming 與 event intent。
自我改善目前回合內的程式修正與重試。記憶整理、Skills 建立/更新、經驗回顧與程序化學習。Skill Workshop 驅動的 correction/success capture、提案、掃描、套用與回滾。
最適合的任務在一台有足夠硬體的機器上,直接瀏覽網頁、寫程式與操作工作區。長期個人助理、研究、維運、自動化、跨平台通知與專家分工。聊天入口、事件驅動工作、個人裝置控制與多節點助理產品。

這不是「誰功能比較多」的排行榜,而是能力層級比較。AgenticSeek 把大量邏輯放在一個應用程式內;Hermes 與 OpenClaw 則把 Gateway、session、trigger、tool policy 和長期運作視為一等公民。

一、記憶:存過去,還是改變未來?

先建立記憶的四級模型

可以把 Agent 記憶想成四個逐漸變得更有用、也更難做好的層次:

  1. Transcript:保存對話與工具輸出,主要用途是恢復 session。
  2. Curated facts:抽出穩定偏好、環境、專案決策,避免每次重新問。
  3. Retrieval:不把所有歷史塞進 prompt,而是在需要時用關鍵字、向量或混合搜尋找回。
  4. Procedural memory:把跨任務反覆出現的成功方法寫成技能或 SOP,讓未來直接照流程做。
記憶能力AgenticSeekHermesOpenClaw
保存目前 session
跨 session 恢復有,但取決於 save_sessionrecover_last_session 設定,預設設定並非自動長期知識庫。有;MEMORY、USER 與 session store 分工,且 session 可用 FTS5 搜尋。有;長期記憶、每日 notes 與 session history 分層。
語義/混合檢索目前核心程式未看到等同的長期語義檢索層。內建 session search,並支援外部記憶提供者擴充。支援 memory_search;有 embedding 時採語義+關鍵字混合搜尋。
記憶整理有可選的本地 LED 摘要模型,但它主要是 context compression。由 Agent 主動以 memory tool 維護,容量超限會拒絕寫入而非靜默丟資料。compaction 前自動 flush;Dreaming 在背景把合格內容提升到長期記憶。
從經驗產生程序目前沒有等同 Skills/Workshop 的持久程序學習機制。可用 /learnskill_manage 與技能生命週期。可用 Skill Workshop 與 autonomous self-learning。

AgenticSeek:它有記憶,但更接近「可恢復的對話緩衝區」

AgenticSeek 的 Memory 類別以角色訊息列表保存 system、user、assistant 內容。啟用 session 儲存時,檔案會寫到 runtime 目錄下的 conversations/<agent_type>,格式是 JSON;下一次可找到最近的檔案再載入。這對「繼續上一段對話」有效,但與可查詢的長期知識庫仍是兩件事。

原始碼也放入一個 pszemraj/led-base-book-summary 的摘要模型,目的在壓縮過長訊息。這解決的是 context window 和記憶長度問題,不會自動判斷哪些經驗值得永久保存,也不會把成功操作寫成技能。更值得注意的是,目前幾個主要 Agent 建構 Memory 時都把 memory_compression 設為關閉;因此不能只看到類別裡有摘要函式,就推論整個產品已啟用智慧長期記憶。

Hermes:把「事實記憶」和「程序記憶」拆成兩種資產

Hermes 的基礎記憶有清楚的容量邊界:MEMORY.md 放 Agent 的環境事實、慣例與學到的經驗;USER.md 放使用者偏好與溝通方式。兩者在新 session 開始時注入,讓固定重要資訊不用每次搜尋。另一方面,完整歷史保存在 SQLite session store,透過 session_search 按需找回,而不是把所有歷史都塞進每一個 prompt。

這個設計的關鍵是「記憶不等於技能」。例如「伺服器的 Docker socket 不應開放」是事實或規則;「先用 health check,再讀 log,最後才重啟」則是程序。Hermes 用 Skills 保存後者,採漸進式揭露,只在任務需要時載入,避免把所有工作流程變成永久 prompt 負擔。

Hermes 的記憶更新會立即寫回檔案,但正在執行的 session 使用固定快照,下一個 session 才會看到新的 system prompt。這是刻意的工程取捨:犧牲一點即時性,換取穩定的 prompt prefix cache 與可預期的上下文。

OpenClaw:把記憶做成「日誌、長期知識、搜尋與背景鞏固」

OpenClaw 的 workspace 記憶由 USER.mdMEMORY.md 與每日 memory/YYYY-MM-DD.md 等 Markdown 檔組成。每日 notes 是工作層,長期記憶是精簡、可長期載入的層;模型只記得真正寫進磁碟的內容,沒有一個看不見的神祕狀態。

它另外提供 memory_searchmemory_getintent。其中 intent 不是一般提醒,而是事件條件型的「未來要做什麼」;精確的時間提醒仍交給排程。compaction 前的 memory flush 先把重要內容寫下來,Dreaming 再以分數、召回頻率與查詢多樣性等門檻,把合格候選提升到長期記憶。這已經從「檔案保存」進入「背景資料整理」。

記憶越強,錯誤記憶造成的影響也越大。三者都不能把「曾經出現過」當成「永遠正確」;敏感權限、金額、部署狀態與外部來源仍需要新鮮度、證據與人工核准。

二、任務觸發:什麼時候 Agent 會開始工作?

觸發機制決定 Agent 是聊天工具,還是可以長期運轉的自動化系統。可以分成四類:

手動觸發
使用者送出訊息、CLI 命令或 API 請求。
事件觸發
GitHub push、Webhook、Email、裝置事件或其他外部系統發出訊號。
時間觸發
一次性提醒、固定間隔、每日時間或 cron 表達式。
流程觸發
上一個任務完成、失敗或產出證據後,喚醒下一個 Agent/worker。
觸發面向AgenticSeekHermesOpenClaw
聊天/手動請求Web UI、CLI、FastAPI /query多平台 Gateway、CLI、API 與背景 session。多平台 Gateway、Control UI、CLI 與 session。
時間排程目前 repo 未見內建持久 Cron 入口。一次性/週期性 Cron,可載入 Skills、指定模型與投遞目的地。Automations 支援 atevery、cron,並持久化 job 與 run history。
外部事件需由外部服務自行呼叫 API;目前應用程式本身不是事件 Gateway。Webhook 可驗 HMAC、過濾 payload、綁定 Profile/Skills,結果可回 GitHub 或訊息平台。Automation/Webhook/Hooks 可喚醒 Agent 或直接投遞固定結果。
重啟後恢復主要是恢復 session;沒有同等的 durable job ledger。排程、Profiles、session 與 delivery state 可持久化。排程與背景 task 記錄進共享 SQLite,Gateway 重啟不會遺失排程定義。

AgenticSeek 的限制:Celery 出現,不等於已經有任務佇列

AgenticSeek 的 api.py 建立了 Celery broker/backend 設定,但目前 /query 路徑仍直接 await think_wrapper(...),並用程序內的 is_generating 阻止同時處理。當另一個請求進來時回傳 429。這代表目前使用體驗仍是「一個 API 請求對應一段前景執行」,不能把 Celery import 當成已完成的排程、重試、死信與重啟恢復系統。

它的 start_services.sh 負責啟動 Docker 服務,不是事件排程器。若要每天自動研究、收到 GitHub push 後審查,或在失敗後等候外部核准,仍需要另外接 cron、n8n、Webhook service 或其他工作佇列。這正是應用程式與 Agent 平台的分水嶺。

Hermes:觸發器是平台功能,不是使用者自己拼接的外掛

Hermes Cron 使用統一的 cronjob 工具,可以建立一次性或週期性工作、附加一個以上的 Skill,並把結果送回 origin chat、檔案或指定平台。它還有 no-agent 模式,讓純腳本定時執行、完全不呼叫 LLM;這對健康檢查、固定資料抓取與成本敏感流程很重要。

事件觸發則由 Webhook adapter 處理。路由可以限制事件類型、用 HMAC 驗證來源、過濾 payload、選擇 Profile 和 Skills,並將結果投遞到 GitHub comment、Telegram 或其他平台。這比「公開一個 /query 端點,收到什麼就交給 Agent」多了身份、路由、重複請求與輸出目的地等控制層。

OpenClaw:以長駐 Gateway 統一聊天、排程與裝置事件

OpenClaw 的 Automations 會保存 job 定義、執行狀態與歷史,每次執行會建立 background task。排程可以送到聊天頻道、Webhook,或選擇不投遞。除了固定時間,它還把 heartbeat、hooks、standing orders 與 event-conditioned intent 放進同一個自動化世界。

這個模型更像家用或團隊的事件控制平面:訊息進來是事件,排程到點是事件,裝置節點回報也是事件。代價是系統長期在線、入口更多、狀態更多;因此身份配對、權限與 Gateway 暴露面比單機 Web UI 更重要。

三、自主優化:重試不等於學會

最容易誤判的地方是把 runtime correction 叫做 self-improvement。以下五級可以用來檢查一個專案到底做到哪裡:

等級能力改善是否跨越目前任務?
L0:回合內修正工具失敗,把錯誤回饋給 LLM,再生成一次。否;只救目前這一輪。
L1:Session 恢復下一輪載入上一段對話或工作狀態。有限;主要是知道發生過什麼。
L2:程序記憶把成功方法抽成 Skill、SOP 或可載入規則。是;未來任務可以重用做法。
L3:評估與治理以結果和證據審核候選改善,支援掃描、核准、版本與回滾。是,而且可控制錯誤擴散。
L4:模型層學習用資料更新權重、LoRA 或路由策略,改變模型本身。是,但三個產品目前主軸都不是線上權重訓練。

AgenticSeek:L0 做得直接,沒有把結果送進學習閉環

CoderAgent 在一次任務中最多嘗試五次;程式執行失敗後,將 interpreter feedback 放回記憶,再請 LLM 修正。FileAgent 也有五次執行嘗試;PlannerAgent 解析計畫失敗時最多重試四次。這是合理的 prototype recovery:錯誤不是立刻終止,而是讓模型看到可操作的失敗訊息。

但這種流程的邊界很清楚:第五次成功只代表這次成功,不會自動修改下一次的 prompt、工具 schema、路由器或固定 SOP。程式碼也沒有看到把成功軌跡送進 evaluator、產生候選 Skill、經審核後寫回未來 session 的完整路徑。因此它是「會自我修錯」,不是「會累積可泛化的能力」。

Hermes:用 Memory + Skills 形成程序化學習

Hermes 的自我改善主要發生在 harness 層,而不是模型權重。Agent 可以主動把穩定事實寫入記憶,也可以透過 /learn 從來源建立可重用 Skill;Skills 採 progressive disclosure,只有在任務相關時才把完整程序載入。

這種設計讓「下次做得更好」有具體載體:不是把上一輪整段對話塞回去,而是留下更短、更抽象、可以被驗收的做法。官方文件也把記憶寫入與技能寫入分開管理,並提供容量上限、寫入核准與安全掃描。它仍然不是自動改模型權重,但對一般維運、研究和程式工作而言,改善發生在 prompt、工具選擇、程序和路由層,已足以產生實際差異。

OpenClaw:把「經驗變技能」做成獨立的 Workshop 生命週期

OpenClaw 的 self-learning 明確定義為:從 correction 與成功工作擷取可重用 Skill。它有三種模式:

OpenClaw 的重點不是「模型寫了一個 Markdown 檔」而已。候選內容由獨立 review session 根據真實證據撰寫;套用前會再掃描,更新會綁定現有 Skill 的 hash,Skill 變動後提案會失效;套用會保留舊內容作為 rollback metadata;每週還有 collection review,只處理 Workshop 擁有的路徑。這些機制把自主優化從一句口號變成可追蹤的變更生命週期。

自主優化的安全關鍵不是「讓 Agent 自己改」,而是限制它能改什麼、如何驗證、何時生效,以及錯了能不能回復。沒有這四項,學習速度越快,錯誤污染也越快。

四、編排:固定角色、可組合平台與事件控制平面

編排面向AgenticSeekHermesOpenClaw
路由語言/複雜度分類器與固定 role,複雜任務轉 Planner。模型根據 tool schema 選工具;可用 Profile、Skill 與模型路由分流。Gateway 依 channel、session、agent binding 與工具政策路由。
計畫LLM 產生 JSON plan,包含 agent、id、task、need。工具呼叫迴圈、Background task、Kanban 與持久目標可組合。Session、Automation、Sub-agent、Task Flow 與 Swarm 分工。
執行單位同一 Python process 內的 Agent 物件。主 Agent、Profiles、短期 child、長期 worker。每個 Sub-agent 有自己的 session,完成後以事件回傳父 session。
依賴與恢復Planner 在記憶中傳遞前一步結果;重啟恢復能力有限。Kanban 卡、依賴、worker lifecycle 與持久化 state。Background task ledger、completion handoff 與 durable queue。
隔離單位主要是 Agent workspace 路徑;不是完整的執行沙箱。Profile 隔離設定/session/memory;真正檔案隔離要使用 sandbox backend。Session 分離;可再套 sandbox,但同一 Gateway 仍是同一信任域。

AgenticSeek 的 Planner 是應用程式內的工作流

Planner 會讓 LLM 把複雜請求轉成 JSON,之後依序啟動 Coder、File、Web 或 Casual Agent。每個 task 可指定前置結果,失敗後再要求 Planner 更新後續計畫。這對「搜尋資料 → 寫檔案」一類的展示任務足夠直觀。

限制是計畫、狀態與 Agent 物件都在同一個應用程式執行上下文裡。它沒有 Hermes Kanban 那種獨立卡片的 Goal、Acceptance、Artifact 與 Verify By,也沒有 OpenClaw background task 那種長駐 Gateway 的完成回傳。因此某一步卡住,通常是整個 request 卡住;服務重啟後也不會自然地從中間節點繼續。

Hermes 的重點是「把 Agent 當成可治理的工作單位」

Hermes 將 Profile、Skill、MCP、Cron、Webhook、session、terminal backend 與 worker 分開。Profile 可以有自己的設定、模型、Skills、Memory、session 與 Gateway;Kanban 則把跨回合的任務依賴、責任歸屬、工作區、重試和審核狀態變成持久資料。這讓「研究、實作、驗證、發布」可以拆成不同工作單位,而不是全塞進一次 prompt。

要注意 Profile 不等於沙箱。官方文件明確區分 state isolation 和 filesystem isolation:local terminal 仍以使用者權限存取檔案;需要降低 blast radius 時,才切到 Docker、SSH、Modal 等隔離 backend。這種誠實的邊界說明,比宣稱「Profile 已經安全隔離」更重要。

OpenClaw 的優勢是訊息與事件的長期生命週期

OpenClaw 的 Sub-agent 會在獨立 session 執行,完成後把結果透過內部事件交回請求者;主 Agent 再決定是否驗證、繼續或對人投遞。排程執行也會留下 background task 記錄。這種 push-based handoff 適合長時間研究與慢速工具,不必讓前景聊天一直輪詢。

代價是它仍然不是惡意多租戶平台。官方安全模型把一個 Gateway 視為單一信任域;能操作 Agent 的人,共享該 Agent 被授予的工具能力。若使用者彼此不信任,應該拆成不同 Gateway、OS 使用者或主機,而不是只靠 session ID 假裝完成隔離。

五、安全、部署與授權:功能越完整,邊界越不能含糊

風險面向AgenticSeekHermesOpenClaw
命令執行Coder 可執行 Bash、Python、C、Go、Java;Bash 使用 shell=Truesafe_mode 預設關閉,啟用後仍是黑名單。危險命令核准、硬性封鎖、檔案寫入政策,並可把執行切到 Docker/SSH/Modal 等 backend。工具政策、exec mode、allowlist/ask/auto/full 與可選 sandbox;文件明確說核准不是多租戶隔離。
入口保護backend 預設 loopback;AGENTICSEEK_API_TOKEN 只套在 /query,其他讀取/停止/截圖端點不一定同樣保護。Gateway allowlist/DM pairing、平台授權、Webhook HMAC 與 API/服務邊界。Gateway auth、裝置 pairing、DM policy;遠端連線仍需要明確授權。
檔案隔離workspace path containment 已改善,但 bundled Docker 是應用程式封裝,不是專用安全沙箱;官方 Dockerfile 也未指定非 root 使用者。Profile 不等於 filesystem sandbox;需明確設定隔離 terminal backend 或安全工作區。可用 Docker/Podman/SSH/OpenShell sandbox;sandbox 預設關閉且不是完美安全邊界。
ARM64官方 backend image 強制 linux/amd64,Chrome/ChromeDriver 下載 linux64,需移植或模擬。Python/Linux 路線對 ARM 主機較自然,實際仍要依 terminal backend 和依賴驗證。Node.js 路線與桌面/節點支援較完整;Linux ARM64 仍應按官方發行包與實際部署方式測試。

AgenticSeek 的 Docker Compose 已把 backend host port 綁到 loopback,並將 Agent workspace 與 runtime data 分離,這是正確方向;但它不能抵銷任意程式執行、瀏覽器操作、容器預設權限與外部網路能力的風險。CLI 模式更會直接在主機工作區執行。

授權方面,AgenticSeek 的官方 LICENSE 是 GPL-3.0;Hermes 與 OpenClaw 的官方 LICENSE 是 MIT。若只是把專案當獨立服務執行,授權影響與把程式碼拷貝進另一個專案不同;若要把 AgenticSeek 的元件直接併入 MIT 或商用核心,必須先做 GPL copyleft 相容性審查。OpenClaw 的 GitHub API metadata 目前可能顯示 NOASSERTION,但 repository 的實際 LICENSE 檔是 MIT,授權判斷應以 LICENSE 為準。

三者都不應直接暴露到未授權公網。對「能執行程式、讀檔案、操作瀏覽器」的 Agent,反向代理只提供路由,不會自動替你建立身份、核准、沙箱與資料邊界。

六、不要只看 Demo:一組可重現的比較測試

本篇是 source-level 技術分析,不把 GitHub stars 或展示影片當成效能基準。若要真正比較,應把三個系統放在相同模型能力、相同工作目錄與相同任務下,至少測以下六項:

測試任務範例應記錄的指標
跨 session 記憶第一天記住一個偏好,重啟後要求 Agent 使用它。召回正確率、誤召回率、額外 token、是否需要人工補充。
排程耐久性建立明天執行的任務,重啟 Gateway/容器後等待觸發。是否觸發、是否重複、run history 是否完整、失敗如何回報。
事件路由模擬 GitHub push 或 Webhook,僅允許指定 Profile 和工具。簽章驗證、payload 過濾、工具範圍、輸出投遞正確性。
失敗恢復故意讓工具回傳錯誤,再要求修正並完成。目前任務成功率、重試次數、錯誤是否污染後續 session。
程序學習修正一次工作流程,隔天用不同輸入要求 Agent 重做。是否建立 Skill、泛化程度、是否需要人工核准、可否回滾。
安全邊界嘗試讀取工作區外檔案、呼叫未允許工具、執行破壞性命令。阻擋率、核准流程、日誌、錯誤訊息是否洩漏敏感資料。

這套測試會把「一次 Demo 成功」和「系統長期可靠」分開。尤其要測重啟、延遲、重複事件與錯誤記憶;這些情境不會在漂亮的即時展示中出現,卻決定系統能不能放進日常工作。

七、選型:依問題選,不要依熱門度選

你的主要問題較合適的起點原因
我想在本機直接讓 Agent 搜尋、瀏覽和寫程式AgenticSeek固定 Agent 與 Web UI 讓 POC 很直觀,但要先處理 GPU、ARM64 與命令執行隔離。
我需要 Telegram 長駐助理、Cron、Skills、MCP 和多個專家HermesGateway、Profile、持久記憶、排程、Webhook 與 Kanban 都是平台內建設計。
我需要 WhatsApp/聊天平台/裝置節點和事件自動化OpenClawGateway、Nodes、Automations、Sub-agent 與 Skill Workshop 以此類產品情境為中心。
我想研究 Agent 如何自我優化Hermes 或 OpenClaw兩者都有明確的記憶到程序學習路徑;AgenticSeek 目前主要展示 L0 回合內修正。
我想把能力放進現有平台取設計概念,不整包搬運AgenticSeek 是 GPL-3.0 的整體應用程式,架構、授權與 ARM image 都不適合直接塞進 Hermes 核心。

對 Hermes/DKY 的實際判斷

AgenticSeek 最有價值的地方,是把本地模型、瀏覽器、程式執行和 Planner 放進一個可操作的展示,適合拿來理解「Agent 如何從文字走到動作」。它也提供 workspace containment、runtime 分離與 loopback binding 等值得參考的修正方向。

但 DKY 已經有 Hermes Gateway、Profiles、記憶、Skills、Cron、MCP、Webhook 與 Kanban。若把 AgenticSeek 整包導入,會同時引入第二套路由、第二套 Agent 狀態、另一種 prompt block 格式、GPL-3.0 與 amd64 Docker 包裝,增加而不是減少系統複雜度。比較合理的做法,是把它當成隔離 POC 或程式碼閱讀案例,必要時只抽取「本地瀏覽器 Agent」或「workspace boundary」的局部想法。

結論:真正的產品差異是「誰控制時間、記憶與變更」

AgenticSeek、Hermes 與 OpenClaw 都可以讓 LLM 呼叫工具,但它們回答的是不同問題:

所以「記憶」「任務觸發」「自主優化」不是一個功能開關,而是一條生命週期:

事件/訊息
  → 建立 session 與任務
  → 檢索適當記憶與 Skill
  → 規劃並執行工具
  → 收集結果與證據
  → 評估是否值得保存
  → 審核、套用、回滾
  → 下一次任務載入改善後的程序

AgenticSeek 目前主要走到「執行失敗後重試」;Hermes 走到「記憶與 Skill 的可治理累積」;OpenClaw 則更進一步把「事件喚醒、背景任務與 Skill Workshop」整合成長駐助理的控制平面。這就是三者最重要、也最容易被產品 Demo 掩蓋的技術差異。

原始來源與研究口徑

研究範圍以 2026-09-02 可取得的官方 repository、source file 與官方文件為準;功能描述依官方實作與文件,未把本篇列出的測試設計冒充成實測結果。

AgenticSeek

Hermes

OpenClaw