<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: 邱敬幃 Pardn Chiu</title>
    <description>The latest articles on Forem by 邱敬幃 Pardn Chiu (@pardnchiu).</description>
    <link>https://forem.com/pardnchiu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2593887%2Fe062bbc9-4cfb-4202-b24b-986edf79404b.jpg</url>
      <title>Forem: 邱敬幃 Pardn Chiu</title>
      <link>https://forem.com/pardnchiu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pardnchiu"/>
    <language>en</language>
    <item>
      <title>Agenvoy@v0.24.9 - Enhance logging and timeout features across tools</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Sat, 23 May 2026 17:04:52 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0249-enhance-logging-and-timeout-features-across-tools-29ck</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0249-enhance-logging-and-timeout-features-across-tools-29ck</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.24.8 -&amp;gt; v0.24.9&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Splits provider HTTP timeouts into header- and body-level limits so stuck upstreams bail quickly instead of silently looping until the full body deadline. Surfaces retry status and exhausted failures back to the user, and mirrors that visibility into long-running tools via periodic progress logs. Adds a daemon log tail tool, tags warnings with their originating session, and makes script execution caps configurable per tool.&lt;/p&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;p&gt;把 provider HTTP 超時拆成 header 與 body 兩層，上游卡住時快速 bail，不再悶等整個 body deadline。重試狀態與重試耗盡都回饋給 user，同樣的可見度也鏡射到長跑 tool 的週期進度 log。新增 daemon log 尾巴查閱工具、為 warning 加上來源 session 標籤、並讓 script 執行上限可逐 tool 配置。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add agent send timeout handling and shared provider HTTP clients [8f2f9a2]&lt;/li&gt;
&lt;li&gt;Add daemon log tail tool for recent error inspection [7f4e6af]&lt;/li&gt;
&lt;li&gt;Add per-tool timeout, sanitize Telegram &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt;, fix TUI log dedup [f3aeda8]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 agent send 超時處理，provider HTTP client 抽出共用 factory&lt;/li&gt;
&lt;li&gt;新增可查 daemon log 尾巴的 tool，便於追近期錯誤&lt;/li&gt;
&lt;li&gt;為每個 tool 加上獨立超時配置；清理 Telegram &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; 與修 TUI log 去重&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Increase tool timeouts and log exhausted send failures [5bd0721]&lt;/li&gt;
&lt;li&gt;Add session-tagged warning logs and log session filter [6bdac1d]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;拉高 tool 超時門檻，重試耗盡時記錄 ERROR&lt;/li&gt;
&lt;li&gt;為 warning log 加上 session 標籤，listLog 支援以 session 過濾&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/exec/&lt;/code&gt; — FEAT, UPDATE (&lt;code&gt;execute.go&lt;/code&gt;, &lt;code&gt;toolCall.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/provider/&lt;/code&gt; — FEAT (shared &lt;code&gt;NewHTTPClient&lt;/code&gt;, per-provider migration, codex SSE factory)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/toolAdapter/api/&lt;/code&gt; — UPDATE (ctx-based timeout, progress ticker)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/toolAdapter/script/&lt;/code&gt; — UPDATE (per-tool configurable timeout)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/listLog/&lt;/code&gt; — FEAT (new daemon log tail tool)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/register/&lt;/code&gt; — FEAT (per-tool &lt;code&gt;Timeout&lt;/code&gt; field)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/agent/&lt;/code&gt; — FEAT (per-tool timeouts on subagent / external / plan tools)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/telegram/&lt;/code&gt; — UPDATE (session-tagged push, &lt;code&gt;&amp;lt;br&amp;gt;&lt;/code&gt; sanitize)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/discord/&lt;/code&gt; — UPDATE (session-tagged push)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/tui/&lt;/code&gt; — UPDATE (slog dedup)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/session/&lt;/code&gt; — UPDATE (session-tagged warnings)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/filesystem/&lt;/code&gt; — UPDATE (&lt;code&gt;toolError&lt;/code&gt; session tag)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Generated by &lt;a href="https://github.com/pardnchiu/skill-version-generate" rel="noopener noreferrer"&gt;SKILL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agenvoy</category>
      <category>go</category>
    </item>
    <item>
      <title>個人 Agent 助理詳細比較 - OpenClaw / Hermes Agent / Agenvoy</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Fri, 22 May 2026 17:57:57 +0000</pubDate>
      <link>https://forem.com/pardnchiu/ge-ren-agent-zhu-li-xiang-xi-bi-jiao-openclaw-hermes-agent-agenvoy-1c80</link>
      <guid>https://forem.com/pardnchiu/ge-ren-agent-zhu-li-xiang-xi-bi-jiao-openclaw-hermes-agent-agenvoy-1c80</guid>
      <description>&lt;h3&gt;
  
  
  一、架構概覽與定位
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Agenvoy&lt;/th&gt;
&lt;th&gt;OpenClaw&lt;/th&gt;
&lt;th&gt;Hermes Agent&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;語言&lt;/td&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Stars&lt;/td&gt;
&lt;td&gt;115&lt;/td&gt;
&lt;td&gt;373,958&lt;/td&gt;
&lt;td&gt;162,833&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;架構&lt;/td&gt;
&lt;td&gt;Daemon + TUI&lt;/td&gt;
&lt;td&gt;Gateway 單一 Node.js 進程&lt;/td&gt;
&lt;td&gt;三層（UI / Core / Execution）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;垂直整合&lt;/td&gt;
&lt;td&gt;6 個自研套件&lt;/td&gt;
&lt;td&gt;依賴第三方&lt;/td&gt;
&lt;td&gt;依賴第三方&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;核心方向&lt;/td&gt;
&lt;td&gt;執行可靠性&lt;/td&gt;
&lt;td&gt;生態系與易用性&lt;/td&gt;
&lt;td&gt;自我改進&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;三個專案解的是三個不同的問題，不在同一個比較維度上：&lt;strong&gt;OpenClaw&lt;/strong&gt; 讓任何人都能用上強大的 AI agent；&lt;strong&gt;Hermes Agent&lt;/strong&gt; 讓 agent 從使用中學習和進化；&lt;strong&gt;Agenvoy&lt;/strong&gt; 讓每個執行步驟都精確可控。&lt;/p&gt;




&lt;h3&gt;
  
  
  二、各專案核心優勢
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;生態系是護城河&lt;/strong&gt;：13,729 個社群 skill，ClawHub marketplace，搜尋安裝即用，不需要寫程式，這個規模短期內追不上&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TypeScript + Node.js 的部署優勢&lt;/strong&gt;：前端工程師零學習成本，Web 整合直接，serverless 天然契合，&lt;code&gt;npm install&lt;/code&gt; 就能跑&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ContextEngine plugin 架構&lt;/strong&gt;（v2026.3.7）：context 管理策略抽成 plugin interface，社群可以接入自己的 vector store 或壓縮策略，框架不綁定實作&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;24+ 平台整合&lt;/strong&gt;：WhatsApp、Teams、iMessage、Signal 這些是個人開發者難以獨立維護的整合點，社群維護讓覆蓋面極廣&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Self-improving 是最有野心的方向&lt;/strong&gt;：agent 執行中自動創建 skill、下次復用，讓 agent 真正「從經驗學習」，目前沒有其他主流框架做到同樣程度&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;安全隔離針對多用戶部署&lt;/strong&gt;：container 硬化、namespace isolation、read-only root filesystem、filesystem checkpoint + rollback、pre-execution scanner——這個 stack 是 SaaS 或多用戶共用伺服器場景的正確答案，隔離的是「不同用戶之間」&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NousResearch 背景帶來的模型理解&lt;/strong&gt;：做模型研究的團隊寫 agent 框架，對 context window 行為、model 特性的理解深度不同，ContextCompressor 的策略是研究角度的實作&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python 生態&lt;/strong&gt;：&lt;code&gt;pip install&lt;/code&gt; 整合任何 ML 庫，資料科學工具鏈天然接入，對 AI/ML 使用者不可替代&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;執行引擎的精細度&lt;/strong&gt;：tool slot 狀態機、session 內 tool 結果快取、三層迴圈防護、tool pair 完整性保護、KV-cache 精確放置&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;垂直整合&lt;/strong&gt;：ToriiDB、go-bot、go-scheduler、go-browser 全部自研，無第三方 breaking change 風險，每層 API 邊界自己設計&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tool 架構三層分離&lt;/strong&gt;：&lt;code&gt;api_*&lt;/code&gt;、&lt;code&gt;script_*&lt;/code&gt;、&lt;code&gt;mcp_*&lt;/code&gt; 各有對應的 rate limit、auth、timeout 策略&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Error memory 閉環&lt;/strong&gt;：工具失敗 → 向量化記錄 → 語義召回 → hint 注入 tool result&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go 的長期運行優勢&lt;/strong&gt;：低記憶體、真正並發、binary 部署，daemon 長跑無 runtime 管理負擔&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;安全針對個人與內部部署的威脅模型&lt;/strong&gt;：OS 沙箱（Linux &lt;code&gt;bwrap&lt;/code&gt; / macOS &lt;code&gt;sandbox-exec&lt;/code&gt;）三個呼叫點統一入口、命令白名單只允許指定 binary、&lt;code&gt;denied_map.json&lt;/code&gt; 封鎖 &lt;code&gt;.ssh&lt;/code&gt;/&lt;code&gt;.aws&lt;/code&gt;/&lt;code&gt;.gcloud&lt;/code&gt;/&lt;code&gt;.env&lt;/code&gt;/&lt;code&gt;.pem&lt;/code&gt; 等敏感路徑與憑證類型、&lt;code&gt;rm&lt;/code&gt; 重導向到 &lt;code&gt;.Trash/&lt;/code&gt; 防止誤刪、&lt;code&gt;run_command&lt;/code&gt; 只接受 &lt;code&gt;argv[]&lt;/code&gt; 陣列拒絕 shell 字串注入、憑證存 OS keychain 不落 env 檔、&lt;code&gt;localhostOnly()&lt;/code&gt; 限制敏感 API 路由、MCP server 預設不信任。這個 stack 防的是「agent 意外做了你不打算讓它做的事」，而不是用戶間隔離。&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  三、工具生成
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;：self-improving 核心。Agent 執行過程中發現重複任務 → 自動生成 skill 檔案（Python）→ 持久化 → 下次復用，不需要人介入。學習連續，agent 使用越久能力越強。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：走社群路線，ClawHub marketplace，13,729 個人工審核過的 skill，品質有一定保證，零程式碼門檻，搜尋安裝即用。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;：&lt;code&gt;script-tool-add&lt;/code&gt; skill，七個互動關卡：需求釐清 → 命名與參數設計 → dependency 確認 → secret 存取 → 沙箱確認 → 實作 + 測試 → 寫入落地。合約是 stdin JSON → stdout JSON，sandbox 執行。人機協作流程，agent 引導使用者確認每個設計決策後才落地。&lt;/p&gt;




&lt;h3&gt;
  
  
  四、API / Plugin / Script 工具整合
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;：工具是 Python 函數，整合外部 API 直接寫 Python handler，Python 生態所有套件直接可用，&lt;code&gt;ThreadPoolExecutor(8)&lt;/code&gt; 並發執行。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：skill 即工具，ClawHub 上大量第三方服務整合已由社群完成，使用者從 marketplace 安裝，不需要自己寫 API handler。ContextEngine plugin 讓開發者可以擴展框架本身。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;：MCP 即插即用，OpenClaw 的 skill 生態可以直接透過 MCP server 形式接入——這層相容性不需要額外設定。&lt;/p&gt;

&lt;p&gt;在此基礎上，額外提供兩種獨立的工具接口：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;api_*    → JSON config 定義 HTTP 端點、auth、參數 schema
           per-API rate limiting（mutex + 1s min gap）

script_* → Python / JS 腳本，sandbox 執行
           stdin JSON → stdout JSON 合約，5min timeout
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;api_*&lt;/code&gt; 讓使用者不寫任何程式碼就能把 REST API 暴露給 agent，&lt;code&gt;script_*&lt;/code&gt; 處理需要邏輯運算的情境。三種類型各有獨立 adapter，各自管理自己的 rate limit、auth、timeout 策略，MCP 走 &lt;code&gt;StdioClient&lt;/code&gt;（atomic nextID，inflight request 追蹤）。&lt;/p&gt;




&lt;h3&gt;
  
  
  五、Error Memory
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;：MEMORY.md 作為 agent 的知識庫，記錄過去學到的事情包含失敗經驗，高相似度記憶注入 planning prompt。SQLite 持久化跨 session 保留，人工可讀，agent 也可以自己編輯更新。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：ContextEngine plugin 讓開發者自接 vector store，框架不綁定記憶後端。Skill 層面可以包裝記憶邏輯，選擇最適合自己的記憶策略。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;：工具失敗時自動記錄到 ToriiDB，分類 error type，90 天 TTL 自動過期。下次相同工具失敗時語義搜尋過去記錄，把 hint 注入 tool result。&lt;code&gt;vectorSearch&lt;/code&gt; 失敗時 fallback 到 &lt;code&gt;keywordScan&lt;/code&gt;，不中斷主流程。連續失敗超過 &lt;code&gt;MaxRetry&lt;/code&gt; 次則 abort 並通知換工具。&lt;/p&gt;




&lt;h3&gt;
  
  
  六、Context / Summary 管理
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;：&lt;code&gt;ContextCompressor&lt;/code&gt; 在 50% context window 時觸發，用獨立的 auxiliary model call 把中間段對話壓縮成摘要，清理孤立 tool pair，對長對話自動縮減，使用者感知不到 context limit。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：v2026.3.7 引入 pluggable ContextEngine，把 context 壓縮策略抽象成 plugin interface，讓開發者換入自己的策略——接 RAG、自訂壓縮演算法、或 semantic chunking 都可以。框架本身不主張哪種最好，交給使用者決定。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;：Context 由兩層組成：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;system&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;prompts&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;SummaryMessage&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="err"&gt;←&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;結構化&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;JSON，過去討論的長期記憶&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;OldHistories&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="err"&gt;←&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;最近&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;N&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;則對話，短期記憶&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;UserInput&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="err"&gt;ToolHistories&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;summary.json&lt;/code&gt; 是一個結構化的 JSON 對象，累積整個 session 的對話摘要——不是壓縮後的文字段落，而是有欄位的記憶（&lt;code&gt;discussion_log&lt;/code&gt;、決策、待辦事項等），作為 agent 的長期記憶注入每次請求。&lt;code&gt;OldHistories&lt;/code&gt; 則是最近 N 則完整的原始訊息，作為短期記憶。&lt;code&gt;GetSummaryPrompt&lt;/code&gt; 在組裝時會依照最舊的 history 時間點過濾掉 &lt;code&gt;discussion_log&lt;/code&gt; 裡已被 history 涵蓋的條目，避免重複覆蓋同一段對話。&lt;/p&gt;

&lt;p&gt;Summary 的更新走獨立的 cron job，增量游標只處理上次游標之後的新訊息，不重複處理歷史，不需要 auxiliary model call。&lt;/p&gt;




&lt;h3&gt;
  
  
  七、執行引擎
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;：&lt;code&gt;ThreadPoolExecutor(max_workers=8)&lt;/code&gt; 並發執行工具，sequential 或 concurrent 模式可選，有 retry 和 fallback 機制，context compression 在 token 壓力時自動觸發。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;：事件驅動 Command Queue，Orchestrator 決定哪個 agent 處理事件、管理任務序列。重點在多 channel 路由和 skill 分派，execution 細節在 skill 層面處理。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5 狀態 slot 機（Ready / Cached / Skipped / StubActivated / ValidateFailed）&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;IsConcurrent&lt;/code&gt; 旗標決定個別工具是否並發，非全部丟 thread pool&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;alreadyCall&lt;/code&gt; session 內 tool 結果快取，相同呼叫不重打&lt;/li&gt;
&lt;li&gt;三層迴圈防護：&lt;code&gt;MaxToolIterations&lt;/code&gt; / &lt;code&gt;MaxEmptyResponses&lt;/code&gt; / 同 payload hash retry&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;trimOnContextExceeded&lt;/code&gt; 原子刪除 tool pair，保護 message pair 完整性&lt;/li&gt;
&lt;li&gt;KV-cache &lt;code&gt;ephemeral&lt;/code&gt; 放在最後一個 system prompt + 最後一個 tool&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  八、綜合
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;維度&lt;/th&gt;
&lt;th&gt;Agenvoy&lt;/th&gt;
&lt;th&gt;OpenClaw&lt;/th&gt;
&lt;th&gt;Hermes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;執行引擎精細度&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;工具生成彈性&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API/Plugin 工具架構&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Error Memory 深度&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Context 管理效率&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自我改進能力&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;生態系規模&lt;/td&gt;
&lt;td&gt;★★&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;安全隔離完整度&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;垂直整合程度&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;易用性 / 入門門檻&lt;/td&gt;
&lt;td&gt;★★★&lt;/td&gt;
&lt;td&gt;★★★★★&lt;/td&gt;
&lt;td&gt;★★★★&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>openclaw</category>
      <category>ai</category>
      <category>agenvoy</category>
    </item>
    <item>
      <title>Agenvoy@v0.24.8 - Refactor filesystem helpers and enhance session management</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Fri, 22 May 2026 15:57:08 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0248-refactor-filesystem-helpers-and-enhance-session-management-b5a</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0248-refactor-filesystem-helpers-and-enhance-session-management-b5a</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.24.7 -&amp;gt; v0.24.8&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Replaces file-tail log following with a per-session event bus so every subscriber sees the same stream, and adds a cross-process publish endpoint so the TUI feeds back into it. Hardens privileged routes behind a localhost gate and consolidates filesystem helpers under flatter package boundaries.&lt;/p&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;p&gt;把 file-tail 換成 per-session event bus，所有訂閱者看到同一份串流；新增跨進程 publish endpoint 讓 TUI 也餵回 bus。受保護路由加上 localhost 限制，filesystem helper 收斂到更扁平的 package 邊界。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add popup-based session creation and removal switching [9406861]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;以 popup 流程處理 session 建立與移除時的切換&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  FIX
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fix session event streaming and restrict local-only routes [a8af18f]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;修正 session event 串流，限制本機才能呼叫的路由&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Consolidate filesystem helpers and rename skill/error APIs [a515198]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;收斂 filesystem helper，重新命名 skill 與 error 相關 API&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;internal/session/&lt;/code&gt; — FIX (&lt;code&gt;bus.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/routes/&lt;/code&gt; — FIX (&lt;code&gt;handler/event.go&lt;/code&gt;, &lt;code&gt;handler/log.go&lt;/code&gt;, &lt;code&gt;handler/send.go&lt;/code&gt;, &lt;code&gt;new.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/tui/&lt;/code&gt; — FIX, FEAT (&lt;code&gt;sessionPublish.go&lt;/code&gt;, &lt;code&gt;slog.go&lt;/code&gt;, &lt;code&gt;commandNew.go&lt;/code&gt;, &lt;code&gt;commandRemoveSession.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/filesystem/&lt;/code&gt; — REFACTOR (multiple files)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/exec/&lt;/code&gt; — FIX, REFACTOR&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/types/&lt;/code&gt; — FIX (&lt;code&gt;event.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/&lt;/code&gt; — REFACTOR (API rename propagation)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cmd/app/&lt;/code&gt; — FIX (&lt;code&gt;daemonSlog.go&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Generated by &lt;a href="https://github.com/pardnchiu/skill-version-generate" rel="noopener noreferrer"&gt;SKILL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agenvoy</category>
      <category>go</category>
    </item>
    <item>
      <title>Agenvoy@v0.24.7 - Add plan routing and agent selection for generation</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Thu, 21 May 2026 17:44:53 +0000</pubDate>
      <link>https://forem.com/pardnchiu/v0247-296f</link>
      <guid>https://forem.com/pardnchiu/v0247-296f</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.24.6 -&amp;gt; v0.24.7&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Routes plan generation through the agent selector so a high-reasoning model writes the plan instead of the routing model. Introduces a dedicated routing prefix that pins the selector to the dense-reasoning preference chain.&lt;/p&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;p&gt;將計畫產出改走 agent selector，由高 reasoning model 撰寫，而非由 routing model 直接生成。新增專屬路由前綴讓 selector 鎖定 dense reasoning 偏好鏈。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add plan routing and agent selection for plan generation (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [1137182]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;為 generate_plan 加入路由前綴與 agent 選擇邏輯&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/agent/plan/&lt;/code&gt; — FEAT (&lt;code&gt;generatePlan.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;configs/prompts/&lt;/code&gt; — FEAT (&lt;code&gt;agent_selector.md&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Generated by &lt;a href="https://github.com/pardnchiu/skill-version-generate" rel="noopener noreferrer"&gt;SKILL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agenvoy</category>
      <category>go</category>
    </item>
    <item>
      <title>Agenvoy@v0.24.6 - Refactor session handling and enhance planner functionality</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Thu, 21 May 2026 17:44:10 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0246-d72</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0246-d72</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.24.5 -&amp;gt; v0.24.6&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Introduces a plan skill backed by a dedicated tool and binding execution prompt so the routing model produces plans without executing them. Renames the routing model from planner to dispatcher with a legacy config alias for older setups. Shifts summary generation to an incremental timestamp cursor and drops the merge pass.&lt;/p&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;p&gt;新增 plan skill 與專屬工具，搭配 binding 執行提示語，讓路由 model 產出計畫而不直接執行。將路由 model 從 planner 統一更名為 dispatcher，舊 config 透過 legacy alias 相容。Summary 生成改採增量時間戳游標，並移除 merge pass。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add plan skill and unify secret key naming across SKILL.md files (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [844b29c]&lt;/li&gt;
&lt;li&gt;Register generate_plan tool with binding skill activation prompt (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [b78281e]&lt;/li&gt;
&lt;li&gt;Rebrand homepage with new logo assets and refreshed static UI (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [930fab6]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 plan skill 並統一各 SKILL.md 的 secret key 命名&lt;/li&gt;
&lt;li&gt;註冊 generate_plan 工具，並加入 binding skill 啟用提示語&lt;/li&gt;
&lt;li&gt;重新設計首頁，加入新版 logo 資源與翻新的靜態介面&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  PERF
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Switch summary cron to incremental timestamp cursor and drop merge pass (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [e62d251]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;將 summary cron 改為增量時間戳游標並移除 merge pass&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  FIX
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rename planner model flow to dispatcher with legacy config alias (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [5f146e4]&lt;/li&gt;
&lt;li&gt;Unify runtime footers via FormatFooter and tighten named-entity search rules (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [1236d69]&lt;/li&gt;
&lt;li&gt;Filter scheduler tools and TUI slash suggestions by current session (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [32ec228]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;將 planner model 流程更名為 dispatcher，並保留舊 config 的 legacy alias&lt;/li&gt;
&lt;li&gt;透過 FormatFooter 統一各 runtime footer，並收緊命名實體的搜尋規則&lt;/li&gt;
&lt;li&gt;依照當前 session 過濾 scheduler 工具與 TUI 斜線指令建議&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Replace landing page content and migrate planner naming across docs (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [9f8e2a8]&lt;/li&gt;
&lt;li&gt;Decouple session selection from global config and add TUI session removal (&lt;a class="mentioned-user" href="https://dev.to/pardnchiu"&gt;@pardnchiu&lt;/a&gt;) [dbc092d]&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;替換首頁內容，並同步更新文件中的 planner 命名&lt;/li&gt;
&lt;li&gt;將 session 選擇從全域 config 解耦，並新增 TUI session 移除流程&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Scope
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;extensions/skills/plan/&lt;/code&gt; — FEAT (&lt;code&gt;SKILL.md&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;extensions/skills/{api-tool-add,scheduler-skill-creator,script-tool-add,skill-creator}/&lt;/code&gt; — FEAT (&lt;code&gt;SKILL.md&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/agent/plan/&lt;/code&gt; — FEAT (&lt;code&gt;generatePlan.go&lt;/code&gt;, &lt;code&gt;plan.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/searcher/&lt;/code&gt; — FEAT (&lt;code&gt;activateSkill.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/filesystem/&lt;/code&gt; — FEAT (&lt;code&gt;skill.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/exec/&lt;/code&gt; — FEAT, FIX (&lt;code&gt;execute.go&lt;/code&gt;, &lt;code&gt;push.go&lt;/code&gt;, &lt;code&gt;selectAgent.go&lt;/code&gt;, &lt;code&gt;execWithSubagent.go&lt;/code&gt;, &lt;code&gt;getSession.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/summary/&lt;/code&gt; — PERF (&lt;code&gt;generate.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/session/&lt;/code&gt; — PERF, FIX, REFACTOR (&lt;code&gt;summary.go&lt;/code&gt;, &lt;code&gt;config.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/host.go&lt;/code&gt; — FIX (planner -&amp;gt; dispatcher)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/tui/&lt;/code&gt; — FIX, REFACTOR (&lt;code&gt;commandPlanner.go -&amp;gt; commandDispatcher.go&lt;/code&gt;, &lt;code&gt;cmdSelector.go&lt;/code&gt;, &lt;code&gt;handlerCommand.go&lt;/code&gt;, &lt;code&gt;handlerExec.go&lt;/code&gt;, &lt;code&gt;commandSwitch.go&lt;/code&gt;, &lt;code&gt;commandRemoveSession.go&lt;/code&gt;, &lt;code&gt;commnadModelRemove.go&lt;/code&gt;, &lt;code&gt;commandReasoning.go&lt;/code&gt;, &lt;code&gt;commandSessionModel.go&lt;/code&gt;, &lt;code&gt;commandNew.go&lt;/code&gt;, &lt;code&gt;init.go&lt;/code&gt;, &lt;code&gt;update.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/cli/&lt;/code&gt; — REFACTOR (&lt;code&gt;config.go&lt;/code&gt;, &lt;code&gt;newSession.go&lt;/code&gt;, &lt;code&gt;resolve.go&lt;/code&gt;, &lt;code&gt;session.go&lt;/code&gt;, &lt;code&gt;switch.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/runtime/{discord,telegram}/&lt;/code&gt; — FIX (&lt;code&gt;run.go&lt;/code&gt;, &lt;code&gt;push.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/routes/handler/&lt;/code&gt; — FIX (&lt;code&gt;send.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/scheduler/&lt;/code&gt; — FIX (&lt;code&gt;listCron.go&lt;/code&gt;, &lt;code&gt;listTask.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/external/searchWeb/&lt;/code&gt; — FIX (&lt;code&gt;register.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/agents/provider/openaiCodex/&lt;/code&gt; — FIX (&lt;code&gt;send.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/utils/&lt;/code&gt; — FIX (&lt;code&gt;utils.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;internal/tools/agent/subagent/&lt;/code&gt; — FIX (&lt;code&gt;invokeSubagent.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;cmd/app/&lt;/code&gt; — FEAT, FIX, REFACTOR (&lt;code&gt;main.go&lt;/code&gt;, &lt;code&gt;cmdDeamon.go&lt;/code&gt;, &lt;code&gt;newTUI.go&lt;/code&gt;, &lt;code&gt;cmdAgent.go&lt;/code&gt;, &lt;code&gt;addProvider.go&lt;/code&gt;, &lt;code&gt;buildAgentRegistry.go&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;configs/configs.go&lt;/code&gt; — PERF&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;configs/prompts/&lt;/code&gt; — FIX (&lt;code&gt;system_prompt.md&lt;/code&gt;); removed &lt;code&gt;summary_merge_prompt.md&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;index.html&lt;/code&gt;, &lt;code&gt;static/&lt;/code&gt; — REFACTOR (landing page rebrand, &lt;code&gt;css/index.css&lt;/code&gt;, &lt;code&gt;index.js&lt;/code&gt;, &lt;code&gt;logo*.svg&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;README.md&lt;/code&gt;, &lt;code&gt;doc/README.zh.md&lt;/code&gt;, &lt;code&gt;wiki/&lt;/code&gt; — REFACTOR (planner -&amp;gt; dispatcher across docs)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;go.mod&lt;/code&gt; — REFACTOR&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Generated by &lt;a href="https://github.com/pardnchiu/skill-version-generate" rel="noopener noreferrer"&gt;SKILL&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agenvoy</category>
      <category>go</category>
    </item>
    <item>
      <title>Claude Code · Codex CLI · Gemini CLI · OpenClaw · Hermes Agent 與 Agenvoy 比較</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Tue, 19 May 2026 04:46:19 +0000</pubDate>
      <link>https://forem.com/pardnchiu/claude-code-codex-cli-gemini-cli-openclaw-hermes-agent-yu-agenvoy-bi-jiao-4ip2</link>
      <guid>https://forem.com/pardnchiu/claude-code-codex-cli-gemini-cli-openclaw-hermes-agent-yu-agenvoy-bi-jiao-4ip2</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Agenvoy vs 市面主流產品：全面詳細比較
&lt;/h2&gt;




&lt;h3&gt;
  
  
  一、基本定位
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;語言&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Go&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;TypeScript&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;授權&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Proprietary&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;開發者&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;個人 (pardnchiu)&lt;/td&gt;
&lt;td&gt;Anthropic&lt;/td&gt;
&lt;td&gt;OpenAI&lt;/td&gt;
&lt;td&gt;Google&lt;/td&gt;
&lt;td&gt;社群&lt;/td&gt;
&lt;td&gt;NousResearch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;主要定位&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;多平台 AI Agent 框架&lt;/td&gt;
&lt;td&gt;終端 coding 助手&lt;/td&gt;
&lt;td&gt;終端 coding 助手&lt;/td&gt;
&lt;td&gt;終端 coding 助手&lt;/td&gt;
&lt;td&gt;多平台 AI Agent&lt;/td&gt;
&lt;td&gt;多平台 AI Agent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;架構&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Daemon + TUI + Chat&lt;/td&gt;
&lt;td&gt;CLI session&lt;/td&gt;
&lt;td&gt;CLI session&lt;/td&gt;
&lt;td&gt;CLI session&lt;/td&gt;
&lt;td&gt;Daemon + TUI + Chat&lt;/td&gt;
&lt;td&gt;Daemon + TUI + Chat&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  二、AI 提供商支援
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Claude&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ 唯一&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI / GPT&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 唯一&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gemini&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 唯一&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Codex（OpenAI OAuth）&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GitHub Copilot&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Nvidia NIM&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OpenAI-compat&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Ollama/LM Studio&lt;/td&gt;
&lt;td&gt;✅ OpenRouter 200+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DeepSeek / Mistral / xAI&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Planner 路由&lt;/td&gt;
&lt;td&gt;✅ 獨立 planner model&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  三、執行環境與前端
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;TUI&lt;/td&gt;
&lt;td&gt;✅ bubbletea&lt;/td&gt;
&lt;td&gt;✅ ink&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;openclaw tui&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;✅ React Ink&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CLI&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP API / Web UI&lt;/td&gt;
&lt;td&gt;✅ gin&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Web Dashboard&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Daemon 模式&lt;/td&gt;
&lt;td&gt;✅ 原生 &lt;code&gt;--daemon&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ systemd/launchd&lt;/td&gt;
&lt;td&gt;✅ gateway daemon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Session Canvas (HTML+SSE)&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;update_page&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;多 Session 命名&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ session picker&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;收到，補充到聊天平台整合的注記：&lt;/p&gt;




&lt;h3&gt;
  
  
  四、聊天平台整合
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Telegram&lt;/td&gt;
&lt;td&gt;✅ 原生 daemon&lt;/td&gt;
&lt;td&gt;⚠️ Channels MCP（需 active session）&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 原生 daemon&lt;/td&gt;
&lt;td&gt;✅ 原生 daemon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Discord&lt;/td&gt;
&lt;td&gt;✅ 原生 daemon&lt;/td&gt;
&lt;td&gt;⚠️ Channels MCP（需 active session）&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 原生 daemon&lt;/td&gt;
&lt;td&gt;✅ 原生 daemon&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;iMessage&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;⚠️ Channels MCP（macOS only）&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ BlueBubbles&lt;/td&gt;
&lt;td&gt;✅ BlueBubbles&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;WhatsApp / Slack / LINE&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 50+ 平台&lt;/td&gt;
&lt;td&gt;✅ 20+ 平台&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;常駐接收（無需開 session）&lt;/td&gt;
&lt;td&gt;✅ daemon&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OTP 認證&lt;/td&gt;
&lt;td&gt;✅ 6-digit crypto/rand&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;平台原生 UI（按鈕/選單/Modal）&lt;/td&gt;
&lt;td&gt;✅ inline keyboard / select menu / modal&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;⚠️ 文字選項&lt;/td&gt;
&lt;td&gt;⚠️ 文字選項&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;平台底層&lt;/strong&gt;：Agenvoy 的 Telegram 與 Discord 整合均基於 &lt;a href="https://github.com/pardnchiu/go-bot" rel="noopener noreferrer"&gt;pardnchiu/go-bot&lt;/a&gt;，獨立維護並開源提供。go-bot 封裝了兩大平台的 bot 協議細節，Agenvoy 本體只需實作業務邏輯，平台 API 層完全由 go-bot 承載，未來其他平台接入同樣只需在 go-bot 新增對應模組。&lt;br&gt;
&lt;strong&gt;關鍵差異&lt;/strong&gt;：Claude Code Channels 需要 session 在線。OpenClaw / Hermes 雖有 daemon，但聊天互動確認是文字型（列出選項回覆數字），Agenvoy 是平台原生 UI（Telegram inline keyboard、Discord select menu / modal）。&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  五、Telegram 功能詳細比較
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code Channels&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;發送文字回覆&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;發送語音 (TTS)&lt;/td&gt;
&lt;td&gt;✅ Gemini TTS → OGG&lt;/td&gt;
&lt;td&gt;✅ ElevenLabs/Hume&lt;/td&gt;
&lt;td&gt;✅ Edge TTS/ElevenLabs&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;發送檔案附件&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;[SEND_FILE:]&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;接收用戶附件&lt;/td&gt;
&lt;td&gt;✅ photo/doc/voice/video&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;語音轉文字 (STT)&lt;/td&gt;
&lt;td&gt;✅ Gemini 14 格式&lt;/td&gt;
&lt;td&gt;✅ Whisper/Gemini&lt;/td&gt;
&lt;td&gt;✅ faster-whisper (本地)&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;互動確認（工具執行）&lt;/td&gt;
&lt;td&gt;✅ 原生 inline keyboard&lt;/td&gt;
&lt;td&gt;⚠️ 文字審批提示&lt;/td&gt;
&lt;td&gt;⚠️ 文字選項&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ask_user (picker)&lt;/td&gt;
&lt;td&gt;✅ 原生 button/modal&lt;/td&gt;
&lt;td&gt;⚠️ &lt;code&gt;/models&lt;/code&gt; picker&lt;/td&gt;
&lt;td&gt;⚠️ 文字選項最多 4 個&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;排程結果推送&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;離線接收（daemon）&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  六、Discord 功能詳細比較
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;功能&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code Channels&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;發送文字回覆&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;發送語音 (TTS)&lt;/td&gt;
&lt;td&gt;✅ Gemini TTS → OGG/OPUS&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;發送檔案附件&lt;/td&gt;
&lt;td&gt;✅ batch 10/訊息&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;互動確認&lt;/td&gt;
&lt;td&gt;✅ select menu button&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;/model&lt;/code&gt; picker&lt;/td&gt;
&lt;td&gt;⚠️ 文字選項&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ask_user (modal)&lt;/td&gt;
&lt;td&gt;✅ select/multi-select/modal&lt;/td&gt;
&lt;td&gt;⚠️ 有限&lt;/td&gt;
&lt;td&gt;⚠️ 文字選項&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Guild mention guard&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;平台 Markdown aware&lt;/td&gt;
&lt;td&gt;✅ 完整規格在 system prompt&lt;/td&gt;
&lt;td&gt;⚠️ 部分&lt;/td&gt;
&lt;td&gt;⚠️ 部分&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;字數限制 aware&lt;/td&gt;
&lt;td&gt;✅ 1600 char in prompt&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  七、排程系統
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cron 排程&lt;/td&gt;
&lt;td&gt;✅ SKILL.md + cron&lt;/td&gt;
&lt;td&gt;✅ 雲端協助 cron/task&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 內建&lt;/td&gt;
&lt;td&gt;✅ 內建&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;One-shot 任務&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅ 雲端協助&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;at&lt;/code&gt; 格式&lt;/td&gt;
&lt;td&gt;✅ 自然語言&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TUI CRUD&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;openclaw cron&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;cronjob&lt;/code&gt; tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fsnotify hot-reload&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;結果推送至 Telegram/Discord&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AI 工具管理 (add/list/remove)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ &lt;code&gt;cronjob&lt;/code&gt; tool&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;本地自主執行（無需雲端）&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌ 依賴雲端&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;排程底層&lt;/strong&gt;：Agenvoy 的排程系統基於 &lt;a href="https://github.com/pardnchiu/go-scheduler" rel="noopener noreferrer"&gt;pardnchiu/go-scheduler&lt;/a&gt;，同屬自有生態套件，提供 cron 表達式解析、one-shot 任務、fsnotify 熱重載，以及任務執行結果路由回各聊天平台的完整能力。&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  八、工具生態
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MCP 支援&lt;/td&gt;
&lt;td&gt;✅ client&lt;/td&gt;
&lt;td&gt;✅ client&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ client&lt;/td&gt;
&lt;td&gt;✅ client&lt;/td&gt;
&lt;td&gt;✅ client + server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自訂工具 (script-tool-add)&lt;/td&gt;
&lt;td&gt;✅ AI 自動生成&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ 自動學習建立 skill&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API 工具發現 (search-api → add)&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Skill 系統&lt;/td&gt;
&lt;td&gt;✅ SKILL.md lazy-load&lt;/td&gt;
&lt;td&gt;✅ CLAUDE.md&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ SKILL.md 5400+ 社群&lt;/td&gt;
&lt;td&gt;✅ SKILL.md agentskills.io&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;圖片生成&lt;/td&gt;
&lt;td&gt;✅ DALL-E/Codex Image&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;媒體轉文字 STT&lt;/td&gt;
&lt;td&gt;✅ Gemini 14 格式&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Whisper/Gemini&lt;/td&gt;
&lt;td&gt;✅ faster-whisper (本地)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;TTS 語音輸出&lt;/td&gt;
&lt;td&gt;✅ Gemini TTS&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ ElevenLabs/Hume/MS&lt;/td&gt;
&lt;td&gt;✅ Edge TTS/ElevenLabs/OpenAI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Computer Use / 瀏覽器&lt;/td&gt;
&lt;td&gt;✅ go-rod + Playwright MCP&lt;/td&gt;
&lt;td&gt;✅ beta&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Chrome CDP&lt;/td&gt;
&lt;td&gt;✅ Playwright (Chromium/Firefox)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;工具沙箱架構&lt;/strong&gt;：Agenvoy 的 Python/JavaScript/API 自訂工具接口引用 &lt;a href="https://github.com/pardnchiu/go-faas" rel="noopener noreferrer"&gt;pardnchiu/go-faas&lt;/a&gt;（Function as a Service）概念，每個 AI 生成的工具以隔離函數單元執行，具備獨立生命週期與安全邊界，而非直接執行裸腳本。這是競品中唯一具備 FaaS 層級沙箱設計的工具擴充機制。&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  九、記憶系統
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;指令檔系統&lt;/td&gt;
&lt;td&gt;✅ SKILL.md&lt;/td&gt;
&lt;td&gt;✅ CLAUDE.md&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ SKILL.md&lt;/td&gt;
&lt;td&gt;✅ SKILL.md&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;對話歷史搜尋&lt;/td&gt;
&lt;td&gt;✅ ToriiDB 向量搜尋&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ SQLite vector&lt;/td&gt;
&lt;td&gt;✅ SQLite FTS5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;錯誤記憶 (error memory)&lt;/td&gt;
&lt;td&gt;✅ ToriiDB&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Action log&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;長期記憶 (persistent)&lt;/td&gt;
&lt;td&gt;⚠️ ToriiDB 基礎在&lt;/td&gt;
&lt;td&gt;⚠️ CLAUDE.md 手動&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;✅ Wiki-style MEMORY.md&lt;/td&gt;
&lt;td&gt;✅ MEMORY.md + USER.md&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;跨 session 記憶&lt;/td&gt;
&lt;td&gt;⚠️ 預設 session 獨立，可搭配外部記憶擴充&lt;/td&gt;
&lt;td&gt;⚠️ 預設 session 獨立，可搭配外部記憶擴充&lt;/td&gt;
&lt;td&gt;⚠️ 預設 session 獨立&lt;/td&gt;
&lt;td&gt;⚠️ 預設 session 獨立&lt;/td&gt;
&lt;td&gt;✅ 內建跨 session&lt;/td&gt;
&lt;td&gt;✅ 內建跨 session&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ToriiDB&lt;/strong&gt; 是 Agenvoy 生態系中自行開發的嵌入式向量資料庫（&lt;a href="https://github.com/pardnchiu/ToriiDB" rel="noopener noreferrer"&gt;pardnchiu/ToriiDB&lt;/a&gt;），無需外部服務，直接嵌入進程內運行。Agenvoy 以 ToriiDB 作為記憶基礎設施，目前承載對話歷史語意搜尋與錯誤記憶兩大功能，並作為後續長期跨 session 記憶擴充的底層基礎。&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  十、依賴與部署
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Agenvoy&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Claude Code&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Gemini CLI&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;OpenClaw&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Hermes Agent&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;直接外部依賴&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;12&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;50+&lt;/td&gt;
&lt;td&gt;40+&lt;/td&gt;
&lt;td&gt;40+&lt;/td&gt;
&lt;td&gt;大量（pnpm monorepo）&lt;/td&gt;
&lt;td&gt;30–40 core + 60+ optional&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;自有生態套件&lt;/td&gt;
&lt;td&gt;5（go-bot / go-pkg / go-scheduler / ToriiDB / go-faas）&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;底層語言&lt;/td&gt;
&lt;td&gt;Go（靜態編譯）&lt;/td&gt;
&lt;td&gt;Node.js&lt;/td&gt;
&lt;td&gt;Node.js&lt;/td&gt;
&lt;td&gt;Node.js&lt;/td&gt;
&lt;td&gt;Node.js&lt;/td&gt;
&lt;td&gt;Python&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;部署方式&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;單一 binary&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;npm install&lt;/td&gt;
&lt;td&gt;npm install&lt;/td&gt;
&lt;td&gt;npm install&lt;/td&gt;
&lt;td&gt;npm install&lt;/td&gt;
&lt;td&gt;pip + docker/VPS&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h3&gt;
  
  
  總結：Agenvoy 的真實定位
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;維度&lt;/th&gt;
&lt;th&gt;說明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;明確領先&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;單一 Go binary、12 個依賴、自有生態套件（pardnchiu 宇宙）、Planner 模型路由、Session Canvas、平台原生 UI（真正的 button/modal）、OTP 認證、API 工具自動發現、圖片生成、本地自主排程（無需雲端）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;與競品並列&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Telegram/Discord daemon、TTS/STT、排程推送、Skill 系統、MCP、瀏覽器自動化&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;競品領先&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;OpenClaw 50+ 平台、Hermes MCP server 模式、Hermes 本地 STT、OpenClaw/Hermes 內建跨 session 記憶、Claude Code Computer Use beta、Claude Code 雲端 cron/task&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Codex CLI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;功能最少，僅 CLI + TUI + OpenAI OAuth，無 daemon 無平台無排程&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>agenvoy</category>
    </item>
    <item>
      <title>Agenvoy@v0.17.0: Easily view your records, more invocation methods</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Sat, 28 Mar 2026 19:56:11 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0170-easily-view-your-records-more-invocation-methods-345e</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0170-easily-view-your-records-more-invocation-methods-345e</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy/releases/tag/v0.17.0" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-cover.pardn.workers.dev%2Fpardnchiu%2Fagenvoy" alt="cover" width="1280" height="640"&gt;&lt;/a&gt;&lt;br&gt;
repo: &lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Agenvoy is inspired by OpenClaw, built on a Go-based architecture with multi-provider intelligent dispatch and a security-first design. &lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.16.1 -&amp;gt; v0.17.0&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Introduced a full REST API layer with SSE support and tool invocation endpoints, added a TUI dashboard for session and log browsing, and migrated credential storage from the OS keychain to the Agenvoy API.&lt;/p&gt;

&lt;p&gt;翻譯&lt;br&gt;
新增完整 REST API 層（含 SSE 支援與工具呼叫端點）、TUI 儀表板供 session 與日誌瀏覽，並將憑證儲存從系統金鑰鏈遷移至 Agenvoy API。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add REST API server with &lt;code&gt;/v1/send&lt;/code&gt; (SSE + non-SSE), &lt;code&gt;/v1/key&lt;/code&gt;, &lt;code&gt;/v1/tools&lt;/code&gt;, &lt;code&gt;/v1/tool/:name&lt;/code&gt; endpoints&lt;/li&gt;
&lt;li&gt;Add TUI layer with file browser, content viewer, session formatter, and log panel&lt;/li&gt;
&lt;li&gt;Integrate Discord bot and REST API into unified &lt;code&gt;cmd/app&lt;/code&gt; entrypoint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 REST API 伺服器，包含 &lt;code&gt;/v1/send&lt;/code&gt;（SSE 與非 SSE）、&lt;code&gt;/v1/key&lt;/code&gt;、&lt;code&gt;/v1/tools&lt;/code&gt;、&lt;code&gt;/v1/tool/:name&lt;/code&gt; 端點&lt;/li&gt;
&lt;li&gt;新增 TUI 層，提供檔案瀏覽器、內容檢視器、session 格式化器與日誌面板&lt;/li&gt;
&lt;li&gt;將 Discord bot 與 REST API 整合進統一的 &lt;code&gt;cmd/app&lt;/code&gt; 入口&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Replace OS keyring with Agenvoy REST API for credential storage&lt;/li&gt;
&lt;li&gt;Rename &lt;code&gt;browser&lt;/code&gt; package to &lt;code&gt;fetchPage&lt;/code&gt; and centralize tool path resolution via &lt;code&gt;ToolFetchPage&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;將憑證儲存從 OS keyring 改為透過 Agenvoy REST API 管理&lt;/li&gt;
&lt;li&gt;將 &lt;code&gt;browser&lt;/code&gt; 套件重新命名為 &lt;code&gt;fetchPage&lt;/code&gt;，並集中透過 &lt;code&gt;ToolFetchPage&lt;/code&gt; 解析工具路徑&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SECURITY
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Migrate Copilot token storage from filesystem to system keychain&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;將 Copilot token 儲存從檔案系統遷移至系統金鑰鏈&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  FIX
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Replace &lt;code&gt;MustClose&lt;/code&gt; with &lt;code&gt;Close&lt;/code&gt; in browser tool and fix &lt;code&gt;realPath&lt;/code&gt; for non-existent directories&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;修正瀏覽器工具中 &lt;code&gt;MustClose&lt;/code&gt; 改用 &lt;code&gt;Close&lt;/code&gt;，並修正 &lt;code&gt;realPath&lt;/code&gt; 對不存在目錄的處理&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Reduce &lt;code&gt;search_web&lt;/code&gt; and &lt;code&gt;google_rss&lt;/code&gt; cache TTL to 5 minutes&lt;/li&gt;
&lt;li&gt;Correct Copilot API token limits to match CAPI &lt;code&gt;max_prompt&lt;/code&gt;/&lt;code&gt;max_output&lt;/code&gt; values&lt;/li&gt;
&lt;li&gt;Translate all system prompts to English and add Chrome detection for browser tool&lt;/li&gt;
&lt;li&gt;Update &lt;code&gt;schedule-task&lt;/code&gt; and &lt;code&gt;script-tool-creator&lt;/code&gt; skills to use Agenvoy API instead of direct external calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;縮短 &lt;code&gt;search_web&lt;/code&gt; 與 &lt;code&gt;google_rss&lt;/code&gt; 快取 TTL 至 5 分鐘&lt;/li&gt;
&lt;li&gt;修正 Copilot API token 限制以符合 CAPI &lt;code&gt;max_prompt&lt;/code&gt;/&lt;code&gt;max_output&lt;/code&gt; 實際值&lt;/li&gt;
&lt;li&gt;將所有系統提示翻譯為英文，並新增瀏覽器工具的 Chrome 偵測&lt;/li&gt;
&lt;li&gt;更新 &lt;code&gt;schedule-task&lt;/code&gt; 與 &lt;code&gt;script-tool-creator&lt;/code&gt; 技能，改用 Agenvoy API 取代直接外部呼叫&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Files Changed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/routes/handler/send.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/routes/handler/sendSSE.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/routes/handler/sendResult.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/routes/handler/key.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/routes/handler/tools.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/routes/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cmd/app/main.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/fetchMeta.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/fileMonitor.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/globalShortcut.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/loadDir.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/readPath.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/selectFile.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/setDefault.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/format/error.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/format/history.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/format/summary.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tui/format/toolCall.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/{browser =&amp;gt; fetchPage}/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Renamed&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/copilot/login.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;SECURITY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/copilot/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/external/searchWeb/SearchWeb.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/external/googleRSS/fetch.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configs/prompts/system_prompt.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extensions/skills/schedule-task/SKILL.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extensions/skills/script-tool-creator/SKILL.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configs/jsons/providors/copilot.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/filesystem/absPath.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FIX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;README.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;DOC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;doc/README.zh.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;DOC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;go.mod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;CHORE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;go.sum&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;CHORE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;©️ 2026 &lt;a href="https://linkedin.com/in/pardnchiu" rel="noopener noreferrer"&gt;邱敬幃 Pardn Chiu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>ai</category>
      <category>openclaw</category>
      <category>pardnchiu</category>
    </item>
    <item>
      <title>Agenvoy@v0.16.0: Introduced script tool as a first-class tool subsystem</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Tue, 24 Mar 2026 16:47:10 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0160-introduced-script-tool-as-a-first-class-tool-subsystem-gdo</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0160-introduced-script-tool-as-a-first-class-tool-subsystem-gdo</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy/releases/tag/v0.16.0" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-cover.pardn.workers.dev%2Fpardnchiu%2Fagenvoy" alt="cover" width="1280" height="640"&gt;&lt;/a&gt;&lt;br&gt;
repo: &lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Agenvoy is inspired by OpenClaw, built on a Go-based architecture with multi-provider intelligent dispatch and a security-first design. &lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.15.2 -&amp;gt; v0.16.0&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Introduced script tool as a first-class tool subsystem, allowing agents to discover and execute local JavaScript and Python scripts via a stdin/stdout JSON protocol — mirroring the existing API tool architecture. Also refactored internal package structure and fixed Discord file upload reliability.&lt;/p&gt;

&lt;p&gt;翻譯&lt;br&gt;
新增 script tool 子系統，讓 agent 可自動發現並執行本地 JavaScript 與 Python 腳本（stdin/stdout JSON 協定），架構與現有 API tool 對稱。同時重構內部套件結構，並修正 Discord 上傳問題。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Script Tool Runtime&lt;/strong&gt; — Add &lt;code&gt;internal/scriptAdapter&lt;/code&gt; package mirroring &lt;code&gt;internal/apiAdapter&lt;/code&gt;. On startup, the executor scans &lt;code&gt;~/.config/agenvoy/script_tools/&lt;/code&gt; and &lt;code&gt;&amp;lt;workdir&amp;gt;/.config/agenvoy/script_tools/&lt;/code&gt; for subdirectories containing a &lt;code&gt;tool.json&lt;/code&gt; manifest (name, description, parameters schema) and an executable &lt;code&gt;script.js&lt;/code&gt; or &lt;code&gt;script.py&lt;/code&gt;. Discovered tools are registered as first-class agent tools with the &lt;code&gt;script_&lt;/code&gt; prefix and dispatched via stdin/stdout JSON, identical to the API tool contract.&lt;/li&gt;
&lt;li&gt;Add git tools for skill management (&lt;code&gt;skill_git_commit&lt;/code&gt;, &lt;code&gt;skill_git_log&lt;/code&gt;, &lt;code&gt;skill_git_rollback&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Add Copilot token auto-relogin on 401 during token refresh&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Script Tool 執行環境&lt;/strong&gt; — 新增 &lt;code&gt;internal/scriptAdapter&lt;/code&gt;，架構與 &lt;code&gt;internal/apiAdapter&lt;/code&gt; 對稱。啟動時掃描 &lt;code&gt;~/.config/agenvoy/script_tools/&lt;/code&gt; 與 &lt;code&gt;/.config/agenvoy/script_tools/&lt;/code&gt;，自動載入包含 &lt;code&gt;tool.json&lt;/code&gt;（name、description、parameters）與 &lt;code&gt;script.js&lt;/code&gt;/&lt;code&gt;script.py&lt;/code&gt; 的子目錄。已發現的工具以 &lt;code&gt;script_&lt;/code&gt; 前綴註冊為一等工具，透過 stdin/stdout JSON 協定執行，與 API tool 完全一致。&lt;/li&gt;
&lt;li&gt;新增 skill 管理用 git 工具（commit、log、rollback）&lt;/li&gt;
&lt;li&gt;新增 Copilot token 401 時自動重新登入&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  FIX
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Fix Discord file upload failure caused by non-ASCII filenames (Japanese, special chars) in multipart upload&lt;/li&gt;
&lt;li&gt;Fix system message ordering and multi-system-prompt merging for Nvidia provider&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;修正 Discord 上傳含日文等非 ASCII 字元檔名時 multipart 上傳失敗的問題&lt;/li&gt;
&lt;li&gt;修正 Nvidia provider 的 system message 排序與多 prompt 合併邏輯&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add file size validation (10MB limit) before Discord upload with user-facing warning&lt;/li&gt;
&lt;li&gt;Update default download path to prefer &lt;code&gt;~/Downloads&lt;/code&gt; over &lt;code&gt;~/.config/agenvoy/download&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 Discord 上傳前檔案大小驗證（10MB 限制），超限時向用戶回報警告&lt;/li&gt;
&lt;li&gt;預設下載路徑改為優先使用 &lt;code&gt;~/Downloads&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Rename &lt;code&gt;internal/tools/apis/adapter&lt;/code&gt; → &lt;code&gt;internal/apiAdapter&lt;/code&gt; and &lt;code&gt;internal/tools/apis&lt;/code&gt; → &lt;code&gt;internal/tools/api&lt;/code&gt; for consistent naming alongside the new &lt;code&gt;scriptAdapter&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;重命名 &lt;code&gt;internal/tools/apis/adapter&lt;/code&gt; → &lt;code&gt;internal/apiAdapter&lt;/code&gt;，&lt;code&gt;internal/tools/apis&lt;/code&gt; → &lt;code&gt;internal/tools/api&lt;/code&gt;，與新增的 &lt;code&gt;scriptAdapter&lt;/code&gt; 形成對稱命名&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ADD
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;script-tool-creator&lt;/code&gt; skill with Python initializer to scaffold new script tools&lt;/li&gt;
&lt;li&gt;Add yt-dlp downloader and info query as example script tools&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 &lt;code&gt;script-tool-creator&lt;/code&gt; skill 及 Python 腳手架腳本，快速建立新 script tool&lt;/li&gt;
&lt;li&gt;新增 yt-dlp 下載與資訊查詢作為 script tool 使用範例&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Files Changed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/scriptAdapter/ececute.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/scriptAdapter/translator.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/executor.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/types/executor.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/git/skillCommit.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/git/skillLog.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/git/skillRollback.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/git/register.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/copilot/refresh.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/discord/reply.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FIX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/nvidia/send.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FIX&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/filesystem/filesystem.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/browser/download.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/browser/register.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/file/writeFile.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;internal/apiAdapter/&lt;/code&gt; (from &lt;code&gt;tools/apis/adapter&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Renamed&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;internal/tools/api/&lt;/code&gt; (from &lt;code&gt;tools/apis&lt;/code&gt;)&lt;/td&gt;
&lt;td&gt;Renamed&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/tools/register.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extensions/skills/script-tool-creator/SKILL.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;ADD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extensions/skills/script-tool-creator/scripts/init_script_tool.py&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;ADD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extensions/scripts/example-yt-dlp-downloader/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;ADD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;extensions/scripts/example-yt-dlp-info/&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;ADD&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/filesystem/git.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configs/prompts/system_prompt.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;go.mod&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;CHORE&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;©️ 2026 &lt;a href="https://linkedin.com/in/pardnchiu" rel="noopener noreferrer"&gt;邱敬幃 Pardn Chiu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>go</category>
      <category>ai</category>
      <category>openclaw</category>
      <category>pardnchiu</category>
    </item>
    <item>
      <title>Agenvoy@v0.15.0: Add Copilot Responses API endpoint support and token-budget message trimming</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Tue, 24 Mar 2026 16:45:09 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0150-add-copilot-responses-api-endpoint-support-and-token-budget-message-trimming-5dca</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0150-add-copilot-responses-api-endpoint-support-and-token-budget-message-trimming-5dca</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy/releases/tag/v0.15.0" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-cover.pardn.workers.dev%2Fpardnchiu%2Fagenvoy" alt="cover" width="1280" height="640"&gt;&lt;/a&gt;&lt;br&gt;
repo: &lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Agenvoy is inspired by OpenClaw, built on a Go-based architecture with multi-provider intelligent dispatch and a security-first design. &lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.14.2 -&amp;gt; v0.15.0&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Add Copilot Responses API endpoint support and token-budget message trimming, harden sandbox with sensitive path denial rules, and make history message limits configurable.&lt;/p&gt;

&lt;p&gt;翻譯&lt;br&gt;
新增 Copilot Responses API endpoint 支援與 token-budget 訊息裁剪機制，強化 sandbox 敏感路徑存取拒絕規則，並支援歷史訊息上限環境變數設定。&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add Copilot Responses Endpoint support for GPT-5.4 and Codex models with dedicated response parsing&lt;/li&gt;
&lt;li&gt;Add token-budget message trimming at session level to prevent input token overflow before agent execution&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 Copilot Responses Endpoint 支援 GPT-5.4 與 Codex 模型，含專用回應解析&lt;/li&gt;
&lt;li&gt;新增 session 層級 token-budget 訊息裁剪，避免 agent 執行前超出輸入 token 上限&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Make max history messages configurable via &lt;code&gt;MAX_HISTORY_MESSAGES&lt;/code&gt; environment variable (default: 16)&lt;/li&gt;
&lt;li&gt;Switch summary delimiter from HTML comments to XML tags and update trailing JSON regex to match &lt;code&gt;xml&lt;/code&gt; format&lt;/li&gt;
&lt;li&gt;Exclude lite models (flash-lite, nano, haiku) from agent selection to ensure stable structured output&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;支援透過 &lt;code&gt;MAX_HISTORY_MESSAGES&lt;/code&gt; 環境變數設定歷史訊息上限（預設：16）&lt;/li&gt;
&lt;li&gt;將 summary 分隔符從 HTML comment 改為 XML tag，並更新 trailing JSON regex 支援 &lt;code&gt;xml&lt;/code&gt; 格式&lt;/li&gt;
&lt;li&gt;排除輕量模型（flash-lite、nano、haiku）於 agent 選擇，確保結構化輸出穩定性&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  SECURITY
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add sensitive path denial rules to macOS sandbox-exec and Linux bwrap with configurable denied paths from embedded JSON config&lt;/li&gt;
&lt;li&gt;Restore &lt;code&gt;--unshare-all&lt;/code&gt; namespace isolation with graceful fallback probe on Linux&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;--new-session&lt;/code&gt; flag to bwrap for additional process isolation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;新增 macOS sandbox-exec 與 Linux bwrap 敏感路徑存取拒絕規則，支援從嵌入式 JSON 設定檔載入&lt;/li&gt;
&lt;li&gt;恢復 &lt;code&gt;--unshare-all&lt;/code&gt; namespace 隔離並加入 graceful fallback 探測機制（Linux）&lt;/li&gt;
&lt;li&gt;新增 bwrap &lt;code&gt;--new-session&lt;/code&gt; 旗標以強化 process 隔離&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  PERF
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;MaxInputTokens()&lt;/code&gt; method to all provider agents for accurate per-model token budget calculation&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;翻譯&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;為所有 provider agent 新增 &lt;code&gt;MaxInputTokens()&lt;/code&gt; 方法，實現精確的 per-model token budget 計算&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Files Changed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configs/jsons/providors/copilot.json&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/copilot/response/responses.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/copilot/send.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/exec/trimMessages.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Added&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/exec/execute.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/types/agent.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;.env.example&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/filesystem/sessionManager/session.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/exec/getSession.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;cmd/cli/main.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configs/prompts/system_prompt.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/exec/extractSummary.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;configs/prompts/agent_selector.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;UPDATE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/sandbox/darwin.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;SECURITY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/sandbox/linux.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;SECURITY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/sandbox/sandbox.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;SECURITY&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/claude/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;PERF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/compat/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;PERF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/copilot/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;PERF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/gemini/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;PERF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/nvidia/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;PERF&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;internal/agents/provider/openai/new.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;PERF&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;©️ 2026 &lt;a href="https://linkedin.com/in/pardnchiu" rel="noopener noreferrer"&gt;邱敬幃 Pardn Chiu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>go</category>
      <category>openclaw</category>
      <category>pardnchiu</category>
    </item>
    <item>
      <title>Agenvoy@v0.14.0: Add OS-native sandbox isolation with automatic bubblewrap installation on Linux</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Wed, 18 Mar 2026 07:28:07 +0000</pubDate>
      <link>https://forem.com/pardnchiu/agenvoyv0140-add-os-native-sandbox-isolation-with-automatic-bubblewrap-installation-on-linux-56nj</link>
      <guid>https://forem.com/pardnchiu/agenvoyv0140-add-os-native-sandbox-isolation-with-automatic-bubblewrap-installation-on-linux-56nj</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy/releases/tag/v0.14.0" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-cover.pardn.workers.dev%2Fpardnchiu%2Fagenvoy" alt="cover" width="1280" height="640"&gt;&lt;/a&gt;&lt;br&gt;
repo: &lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Agenvoy is inspired by OpenClaw, built on a Go-based architecture with multi-provider intelligent dispatch and a security-first design. &lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.13.0 -&amp;gt; v0.14.0&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Add OS-native sandbox isolation with automatic bubblewrap installation on Linux, per-request token usage tracking across all providers, and restructure tool handlers into individually named files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add sandbox package with OS-native isolation: bubblewrap on Linux, sandbox-exec on macOS&lt;/li&gt;
&lt;li&gt;Add automatic bubblewrap dependency detection and installation via system package manager on Linux&lt;/li&gt;
&lt;li&gt;Add sandbox dependency check at startup in both CLI and Discord server entry points&lt;/li&gt;
&lt;li&gt;Wrap all tool command execution and scheduler scripts through sandbox gate&lt;/li&gt;
&lt;li&gt;Add per-request token usage accumulation across all tool-call iterations within a session&lt;/li&gt;
&lt;li&gt;Display total token consumption (model + in/out) in CLI output and Discord reply footers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Extract tool handlers into individually named files: glob.go → globFiles.go, list.go → listFiles.go, patch.go → patchEdit.go, search.go → searchContent.go&lt;/li&gt;
&lt;li&gt;Remove monolithic routes.go; each handler self-registers via init-style pattern&lt;/li&gt;
&lt;li&gt;Move exclude logic and file walk/list functions from tools into filesystem package&lt;/li&gt;
&lt;li&gt;Simplify ReadFile/WriteFile by removing redundant dir parameter&lt;/li&gt;
&lt;li&gt;Rename Executor field WorkPath → WorkDir for consistency&lt;/li&gt;
&lt;li&gt;Resolve symlinks in GetAbsPath with fallback to parent resolution for new files&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;©️ 2026 &lt;a href="https://linkedin.com/in/pardnchiu" rel="noopener noreferrer"&gt;邱敬幃 Pardn Chiu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>go</category>
      <category>openclaw</category>
      <category>pardnchiu</category>
    </item>
    <item>
      <title>Everyone’s raising their AI lobster. Not everyone has a server to run it on.</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Mon, 16 Mar 2026 18:41:47 +0000</pubDate>
      <link>https://forem.com/pardnchiu/everyones-raising-their-ai-lobster-not-everyone-has-a-server-to-run-it-on-n9d</link>
      <guid>https://forem.com/pardnchiu/everyones-raising-their-ai-lobster-not-everyone-has-a-server-to-run-it-on-n9d</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/Agenvoy/releases/tag/v0.14.0" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-cover.pardn.workers.dev%2Fpardnchiu%2Fagenvoy" alt="cover" width="1280" height="640"&gt;&lt;/a&gt;&lt;br&gt;
repo: &lt;a href="https://github.com/pardnchiu/Agenvoy" rel="noopener noreferrer"&gt;pardnchiu/Agenvoy&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.13.0 -&amp;gt; v0.14.0&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Add OS-native sandbox isolation with automatic bubblewrap installation on Linux, per-request token usage tracking across all providers, and restructure tool handlers into individually named files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add sandbox package with OS-native isolation: bubblewrap on Linux, sandbox-exec on macOS&lt;/li&gt;
&lt;li&gt;Add automatic bubblewrap dependency detection and installation via system package manager on Linux&lt;/li&gt;
&lt;li&gt;Add sandbox dependency check at startup in both CLI and Discord server entry points&lt;/li&gt;
&lt;li&gt;Wrap all tool command execution and scheduler scripts through sandbox gate&lt;/li&gt;
&lt;li&gt;Add per-request token usage accumulation across all tool-call iterations within a session&lt;/li&gt;
&lt;li&gt;Display total token consumption (model + in/out) in CLI output and Discord reply footers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Extract tool handlers into individually named files: glob.go → globFiles.go, list.go → listFiles.go, patch.go → patchEdit.go, search.go → searchContent.go&lt;/li&gt;
&lt;li&gt;Remove monolithic routes.go; each handler self-registers via init-style pattern&lt;/li&gt;
&lt;li&gt;Move exclude logic and file walk/list functions from tools into filesystem package&lt;/li&gt;
&lt;li&gt;Simplify ReadFile/WriteFile by removing redundant dir parameter&lt;/li&gt;
&lt;li&gt;Rename Executor field WorkPath → WorkDir for consistency&lt;/li&gt;
&lt;li&gt;Resolve symlinks in GetAbsPath with fallback to parent resolution for new files&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;©️ 2026 &lt;a href="https://linkedin.com/in/pardnchiu" rel="noopener noreferrer"&gt;邱敬幃 Pardn Chiu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>go</category>
      <category>openclaw</category>
      <category>pardnchiu</category>
    </item>
    <item>
      <title>GO-SQLite@v0.3.0: SQLite client with chained method calls</title>
      <dc:creator>邱敬幃 Pardn Chiu</dc:creator>
      <pubDate>Wed, 28 Jan 2026 11:11:34 +0000</pubDate>
      <link>https://forem.com/pardnchiu/go-sqlitev030-sqlite-client-with-chained-method-calls-388f</link>
      <guid>https://forem.com/pardnchiu/go-sqlitev030-sqlite-client-with-chained-method-calls-388f</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/pardnchiu/go-sqlite" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub-cover.pardn.workers.dev%2Fpardnchiu%2Fgo-sqlite" alt="cover" width="1280" height="640"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;blockquote&gt;
&lt;p&gt;v0.2.0 -&amp;gt; v0.3.0&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;Added Delete method and refactored API to use chainable Context pattern, unifying Insert/Update return values for consistency.&lt;/p&gt;

&lt;h2&gt;
  
  
  Changes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FEAT
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Add &lt;code&gt;Delete(force ...bool)&lt;/code&gt; method for row deletion with optional force flag for unprotected deletes&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;Context(ctx context.Context)&lt;/code&gt; chainable method for context propagation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  REFACTOR
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Unify &lt;code&gt;Insert()&lt;/code&gt; to return &lt;code&gt;(int64, error)&lt;/code&gt; with LastInsertId instead of just error&lt;/li&gt;
&lt;li&gt;Unify &lt;code&gt;Update()&lt;/code&gt; to return &lt;code&gt;(int64, error)&lt;/code&gt; with RowsAffected instead of &lt;code&gt;(sql.Result, error)&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Extract SQL building logic into independent methods: &lt;code&gt;buildJoin()&lt;/code&gt;, &lt;code&gt;buildOrderBy()&lt;/code&gt;, &lt;code&gt;buildLimit()&lt;/code&gt;, &lt;code&gt;buildOffset()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add &lt;code&gt;ExecAutoAsignContext()&lt;/code&gt; helper to automatically use context when available&lt;/li&gt;
&lt;li&gt;Move &lt;code&gt;Where()&lt;/code&gt; and &lt;code&gt;OrWhere()&lt;/code&gt; to dedicated files for better organization&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  UPDATE
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Mark legacy Context methods as deprecated: &lt;code&gt;InsertContext()&lt;/code&gt;, &lt;code&gt;InsertReturningID()&lt;/code&gt;, &lt;code&gt;InsertContextReturningID()&lt;/code&gt;, &lt;code&gt;InsertConflict()&lt;/code&gt;, &lt;code&gt;InsertContexConflict()&lt;/code&gt;, &lt;code&gt;InsertConflictReturningID()&lt;/code&gt;, &lt;code&gt;InsertContextConflictReturningID()&lt;/code&gt;, &lt;code&gt;GetContext()&lt;/code&gt;, &lt;code&gt;GetWithTotal()&lt;/code&gt;, &lt;code&gt;GetWithTotalContext()&lt;/code&gt;, &lt;code&gt;FirstContext()&lt;/code&gt;, &lt;code&gt;CountContext()&lt;/code&gt;, &lt;code&gt;UpdateContext()&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Remove deprecated &lt;code&gt;insertBuilderConflict()&lt;/code&gt; internal function&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Files Changed
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;File&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Tag&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;builder.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;FEAT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;insert.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;select.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;select_ext.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;select_where.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;select_or_where.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;update.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;REFACTOR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;main_test.go&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;TEST&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;README.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;DOC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;README.zh.md&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Modified&lt;/td&gt;
&lt;td&gt;DOC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;©️ 2026 &lt;a href="https://pardn.io" rel="noopener noreferrer"&gt;邱敬幃 Pardn Chiu&lt;/a&gt;&lt;/p&gt;

</description>
      <category>backend</category>
      <category>go</category>
      <category>pardnchiu</category>
    </item>
  </channel>
</rss>
