BUILD YOUR OWN OPENCLAW WITH AGENVOY!
Agentic framework | Self-improving memory | Pluggable tool extensions | Sandbox execution
Agentic framework | Self-improving memory | Pluggable tool extensions | Sandbox execution
BUILD YOUR OWN OPENCLAW WITH AGENVOY!
A Go AI agent framework with self-improving error memory, intelligent multi-provider routing, Python/JS/REST API tool extensions, and OS-native sandbox execution
The agent learns from past failures across sessions, routes each task to the right LLM provider automatically, and lets you extend its toolset by dropping a script or JSON file — all running inside an OS-native sandbox.
Terminal UI consolidating CLI, Discord bot, and REST API into a single local interface — filesystem browser, session content viewer, and live log stream.
graph TB
subgraph Entry ["Entry"]
App["cmd/app · Unified TUI App"]
end
subgraph Engine ["Execution Engine"]
Run["exec.Run()\nprefix detect → SelectAgent → Execute"]
Execute["exec.Execute()\n≤128 iterations\nskill activates via select_skill tool"]
end
subgraph Providers ["LLM Providers"]
P["Copilot · OpenAI · Codex · Claude\nGemini · Nvidia · Compat"]
end
subgraph Security ["Security Layer"]
S["Sandbox · Denied Paths · Keychain"]
end
subgraph Tools ["Tool Subsystem"]
T["File · Web · API · Script · Skill (select_skill)\nScheduler · Error Memory · Sub-Agent"]
end
subgraph Memory ["Memory Layer"]
M["ToriiDB Store · Session Summary"]
end
App --> Run
Run --> Execute
Execute -->|"Agent.Send()"| Providers
Execute -->|"tool calls"| Security
Security --> Tools
Tools -->|"results"| Execute
Execute --> Memory
Memory -.->|"inject"| Execute
make build·agen(unified CLI / TUI / Discord / REST API) · Documentation
Seven backends (Copilot / OpenAI / Codex / Claude / Gemini / Nvidia / Compat) behind a unified Agent interface, with a planner LLM picking the right provider per task.
Drop a tool.json + script.js/script.py to register a script tool, or a JSON file to wire any HTTP API as a tool — no Go code, no recompilation.
All commands run inside bubblewrap (Linux) or sandbox-exec (macOS), with path escapes and sensitive files blocked at the OS level.
Tool failures are SHA-256 indexed into a knowledge base that the agent recalls and reuses across sessions.
invoke_subagent spawns an isolated sub-agent directly inside the host process — independent session, optional model / system-prompt / tool overrides, forced self-exclusion to prevent recursion, and no HTTP hop.
First-party packages Agenvoy pulls in directly from its author's ecosystem.
A lightweight embedded key-value store that serves as Agenvoy's single persistence backbone. Session history, error memory, and web tool caches (fetch_page / search_web / fetch_google_rss) all live behind a thin internal/filesystem/store wrapper instead of scattered JSON files. This collapses per-subsystem file formats into one indexed, atomic store, lets search_conversation_history and search_errors scan sessions without walking the filesystem, and reduces cache invalidation to a single key delete.
A cross-cutting utility package providing the HTTP, browser, sandbox, keychain, and helper primitives Agenvoy builds on. go-utils/http supplies the generic GET[T] / POST[T] / PUT[T] / PATCH[T] / DELETE[T] client used by every provider (claude / openai / copilot / compat / gemini / nvidia) and every native API tool (yahooFinance / youtube / googleRSS / searchWeb). go-utils/rod owns the headless-Chrome stack behind fetch_page — stealth JS, listener-settle detection, viewport handling, typed FetchError{Status}, KeepLinks, and a process-singleton browser with idle-TTL eviction. go-utils/sandbox owns the OS-native process isolation wrapped around run_command and every script tool — macOS sandbox-exec seatbelt profiles, Linux bwrap bubblewrap with auto-probed --unshare-* namespaces, CheckDependence() auto-installing bubblewrap on Linux, and a one-time New(denyMapJSON) to seed sensitive-path denylists sourced from configs/jsons/denied_map.json. go-utils/filesystem/keychain powers credential storage (macOS security / Linux secret-tool / file fallback), and go-utils/utils.UUID() provides the shared ID generator.
An in-process cron runtime that makes recurring schedules a first-class primitive inside the agen binary — no system crontab, no systemd timer, no external daemon. internal/scheduler wraps goCron.New(...) behind a process singleton (once.Do) with a minimal schedulerCron interface (Start / Stop / Add(spec, action, args...) / Remove), so the same engine powers both the hourly summary cron and agent-created schedules. This is surfaced to the LLM as four pairs of tools — add_cron / list_crons / get_cron / remove_cron for cron-expression schedules, and add_task / list_tasks / get_task / remove_task for one-shot time.Timer-backed tasks — both persisted through internal/filesystem and reloaded on startup. Because everything runs inside the agent process, schedule state, tool availability, and execution context stay consistent across TUI / CLI / Discord / REST modes; stop the binary and every pending firing stops with it (Stop() cancels every timer and drains the cron via c.Stop()).
Two prior projects from the same author directly informed Agenvoy's architecture:
pardnchiu/go-faas is a lightweight Function-as-a-Service platform that accepts Python, JavaScript, and TypeScript code via HTTP, executes each function inside a Bubblewrap sandbox with full Linux namespace isolation, and streams results. Agenvoy's script tool subsystem (scriptAdapter) adopts this model directly: each script tool is a stateless function invoked via stdin/stdout JSON, isolated to its own process, with the agent acting as the caller rather than an HTTP client.
pardnchiu/cim-prototype argues that perfect memory is a cognitive burden — based on research showing multi-turn LLM performance drops 39% when full conversation history is replayed verbatim (LLMs Get Lost In Multi-Turn Conversation). The system maintains a structured rolling summary and retrieves relevant fragments via fuzzy search only when triggered, mirroring how humans selectively recall rather than replay. Agenvoy's session layer reflects this directly: trimMessages() enforces a token budget rather than replaying full history, summary is persisted and deep-merged across turns, and search_conversation_history provides keyword-triggered recall rather than injecting all past context.
invoke_subagent) with isolated temp sessions, per-call model / system-prompt / tool overrides, and mandatory self-exclusion. Add three-pass concurrent tool-call dispatcher with a Concurrent registry flag, fan-out for fetch_page / invoke_subagent / calculate, and a batch-scoped stub-activation guard. Add same-payload retry circuit breaker for provider and tool calls; add prompt_cache_key to the Codex Responses API; switch search_web from html.duckduckgo.com to lite.duckduckgo.com/lite/ with new anchor/snippet parsing; drop DDG-unsupported sub-day time ranges; harden fetch_page soft-404 detection via err=404/403/410 query-param redirects; strengthen agent tier routing and memory-driven tool recovery.: command input mode. Migrate session history, error memory, and fetch_page / search_web / google_rss caches to the ToriiDB store. Replace per-request summary with an hourly cron running chunked multi-pass generation. Consolidate cmd/cli and cmd/server into a single cmd/app entry and rename the binary to agen. Replace internal keychain / HTTP client / fetchPage internals with go-utils packages. Add stub-tool handling and schema-derived required-arg validation./v1/send with SSE + non-SSE, /v1/key, /v1/tools, /v1/tool/:name), unify Discord bot and REST API under cmd/app, and move the Copilot token into the system keychain. Add invoke_external_agent / cross_review_with_external_agents / review_result for external delegation and internal priority-model review, plus a model field on /v1/send to bypass agent selection. Add search_tools deferred tool loading (keyword fuzzy search + select:<name> direct activation), exclude_tools per-request filtering, and prompt caching across Claude / Gemini / Copilot providers. Add OpenAI Codex as a standalone OAuth provider (Device Code Flow), read_image for local image input, and restore Yahoo Finance as a native Go tool (fetch_yahoo_finance) with concurrent query1/query2 fetch. Refactor session message assembly into 4 fixed segments with reactive context trimming, scheduler into crons/ / tasks/ / script/ sub-packages, and rename browser → fetchPage.scriptAdapter): drop a tool.json + script.js/script.py into ~/.config/agenvoy/script_tools/ and it is auto-discovered as a script_-prefixed tool via stdin/stdout JSON that mirrors the API tool contract. Bundle Threads and yt-dlp script extensions with cross-platform install_threads.sh / install_youtube.sh. Add Copilot token 401 auto-relogin. Refactor toolAdapter into api/ and script/ sub-packages, move session management into internal/session, split filesystem into single-responsibility files, and fix Darwin sandbox keychain directory access.--unshare-all namespace isolation. Fix Copilot Claude/Gemini image validation by decoding and re-encoding every upload as JPEG; split the summary regex into three independent patterns; move system prompts after history to strengthen instruction adherence. Add the analyze_youtube metadata tool, Discord Modal-based API key management, per-model token usage tracking via usageManager, configurable reasoning level across all providers, and browser iteration limits via MAX_TOOL_ITERATIONS / MAX_SKILL_ITERATIONS / MAX_EMPTY_RESPONSES.This project is licensed under the Apache-2.0 LICENSE.
©️ 2026 邱敬幃 Pardn Chiu
| Version | Changes | Urgency | Date |
|---|---|---|---|
| v0.19.4 | > v0.19.3 -> v0.19.4 ## Summary Token-efficient tool prompts (description and parameter-schema hygiene across 8 built-in tools), explicit tool registration across the registry, and `download_page` split into separate `fetch_page` / `save_page_to_file` handlers. <details> <summary>翻譯</summary> 壓縮 8 個內建 tool 的 description 與 parameter schema(省 token),tool registry 改全面顯式註冊,並將原 `download_page` 拆為 `fetch_page` 與 `save_page_to_file` 兩支獨立 handler。 </details> ## Changes ### UPDATE - Trim | High | 4/20/2026 |
| v0.19.3 | > v0.19.2 -> v0.19.3 ## Summary Introduces slash-command routing for external CLI agents (`/claude`, `/codex`, `/gh`, `/copilot`) across all three entry points and a read-only delegation mode for `invoke_external_agent`; consolidates external-agent execution into a shared `internal/agents/external` package. <details> <summary>翻譯</summary> 新增 `/claude`、`/codex`、`/gh`、`/copilot` 斜線前綴路由至外部 CLI agent,並為 `invoke_external_agent` 加上唯讀委派模式;將外部 agent 執行邏輯收斂到共用的 `internal/agents/external` 套件。 </ | High | 4/20/2026 |
| v0.19.2 | > v0.19.1 -> v0.19.2 ## Summary Refines external tool adapters, sandbox execution, and summary internals while documenting the native cron engine. It focuses on safer defaults, cleaner shared utilities, and better concurrent execution support for read-only integrations. <details> <summary>翻譯</summary> 調整外部工具 adapter、sandbox 執行流程與摘要內部模組,並補充原生 cron 引擎文件。重點在於更安全的預設值、更乾淨的共用工具,以及唯讀整合的並行執行能力。 </details> ## Changes ### UPDATE - Update external read-only tools to support concurrent exec | High | 4/19/2026 |
| v0.19.1 | > v0.19.0 -> v0.19.1 ## Summary Refactor skill activation into a lazy-loaded `select_skill` tool, migrate sandbox and utility primitives to `go-utils`, and upgrade persistence/search internals with semantic session-history retrieval. <details> <summary>翻譯</summary> 將 skill 啟用流程重構為延遲載入的 `select_skill` 工具,將 sandbox 與共用工具基礎遷移至 `go-utils`,並升級持久化與搜尋內部機制,加入語意化 session 歷史檢索。 </details> ## Changes ### UPDATE - Update session-history persistence to write vector-aware entries and extend ` | High | 4/19/2026 |
| v0.19.0 | > v0.18.3 -> v0.19.0 ## Summary Introduces concurrent tool-call dispatch, an `invoke_subagent` in-process delegate, and a same-payload circuit breaker; switches `search_web` to the DuckDuckGo lite endpoint and hardens provider/fetch fallbacks across Codex, Google RSS, and Yahoo Finance. <details> <summary>翻譯</summary> 新增並發 tool-call 分派、in-process `invoke_subagent` 子 agent 與相同 payload 斷路器;`search_web` 切換至 DuckDuckGo lite endpoint,並強化 Codex、Google RSS、Yahoo Finance 的 provider 與抓取 fallback | High | 4/17/2026 |
| v0.18.3 | > v0.18.1 -> v0.18.3 ## Summary Sinks the browser-fetch stack, keychain wrapper, and generic HTTP client into the shared `go-utils` library (rod v0.4.0, filesystem/keychain, http). Hardens stub-tool dispatch by short-circuiting first-call execution and validating required arguments against each tool's JSON schema. Fixes path resolution for `glob_files` and adds a vim-style Tab toggle between message and command input modes in the TUI. <details> <summary>翻譯</summary> 將瀏覽器抓頁堆疊、keychain | High | 4/15/2026 |
| v0.18.2 | > v0.18.1 -> v0.18.2 ## Summary Improve tool-call reliability by correctly handling stub tools and streamed function-call arguments, while tightening absolute-path guidance and file path resolution across prompts, schemas, and filesystem helpers. <details> <summary>翻譯</summary> 改善工具呼叫穩定性,正確處理 stub 工具與串流函式參數,同時在提示詞、工具 schema 與檔案系統輔助邏輯中強化絕對路徑指引與路徑解析。 </details> ## Changes ### FEAT - Add TUI input mode toggle to switch between command execution and agent message mode with the Tab k | Medium | 4/14/2026 |
| v0.18.1 | > v0.18.0 -> v0.18.1 ## Summary Removes the legacy `<summary>` block stripping in stdout streaming and adds explicit user-side trigger prompts so summary generation and merging reliably produce raw JSON output. <details> <summary>翻譯</summary> 移除 stdout 串流中舊有的 `<summary>` 區塊過濾邏輯,並新增明確的 user 端觸發提示,使摘要生成與合併能穩定輸出純 JSON。 </details> ## Changes ### REFACTOR - Remove `stripSummaryBlocks` helper from `runEvents` and pass `EventText` content through unchanged - Switch `GetSummaryPrompt` | Medium | 4/14/2026 |
| v0.18.0 | > v0.17.4 -> v0.18.0 ## Summary Introduces vim-style TUI navigation with command input mode, consolidates CLI and server into a unified `agen` entrypoint, and migrates session history, error memory, and web/page caches from JSON/filesystem storage to ToriiDB. <details> <summary>翻譯</summary> 新增 vim 風格 TUI 導覽與命令輸入模式,將 CLI 與 server 整併為單一 `agen` 入口,並將 session 歷史、錯誤記憶與網頁/頁面快取從 JSON/檔案系統遷移至 ToriiDB。 </details> ## Changes ### FEAT - Add vim-style navigation keys and command input mode | Medium | 4/10/2026 |
| v0.17.4 | > v0.17.3 -> v0.17.4 ## Summary This release hardens summary generation, improves tool fallback behavior, adds OpenAI Codex support, restores Yahoo Finance tooling, and expands file/scheduler capabilities across CLI, server, and Discord flows. <details> <summary>翻譯</summary> 此版本強化了摘要生成流程、補強工具 fallback 行為、新增 OpenAI Codex 支援、恢復 Yahoo Finance 工具,並擴充 CLI、server、Discord 端的檔案與排程能力。 </details> ## Changes ### FEAT - Add OpenAI Codex OAuth provider support and wire it into agent registry | Medium | 4/3/2026 |
| v0.17.3 | > v0.17.2 -> v0.17.3 ## Summary This release introduces deferred tool loading via a `search_tools` mechanism, a major scheduler refactor into sub-packages with file-based state persistence, and prompt caching across all providers. <details> <summary>翻譯</summary> 本版本新增透過 `search_tools` 機制的延遲工具載入、將排程器重構為具備檔案狀態持久化的子套件,以及跨所有 Provider 的 Prompt 快取支援。 </details> ## Changes ### FEAT - Add deferred tool loading with `search_tools` activation mechanism, allowing agents to discover a | Medium | 4/1/2026 |
| v0.17.2 | > v0.17.1 -> v0.17.2 ## Summary Add three external agent tools (`call_external_agent`, `verify_with_external_agent`, `review_result`) with internal priority-model selection, and refactor session message assembly into four fixed segments with reactive context trimming. <details> <summary>翻譯</summary> 新增三個外部 agent 工具(call_external_agent、verify_with_external_agent、review_result)並支援內部優先序模型選擇,同時將 session 訊息組裝重構為四個固定段,加入 reactive context trimming 機制。 </details> ## Changes ### ADD - | Medium | 3/30/2026 |
| v0.17.1 | > v0.17.0 -> v0.17.1 ## Summary This patch fixes a build break caused by importing `externalAgent` before that package exists in the repository. The release is otherwise unchanged. <details> <summary>翻譯</summary> 本次 patch 修正了因為提前匯入尚未存在的 `externalAgent` 套件而導致的編譯失敗。其餘功能不變。 </details> ## Changes ### FIX - Remove the missing `externalAgent` import from tool registration so the project compiles cleanly <details> <summary>翻譯</summary> - 移除工具註冊中缺失的 `externalAgent` 匯入,確保專案可 | Medium | 3/29/2026 |
| v0.17.0 | > [!WARNING] > Deprecated, please download [v0.17.1](https://github.com/pardnchiu/Agenvoy/releases/tag/v0.17.1) directly. > v0.16.1 -> v0.17.0 ## Summary 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. <details> <summary>翻譯</summary> 新增完整 REST API 層(含 SSE 支援與工具呼叫端點)、TUI 儀表板供 session 與日誌瀏覽,並將憑證儲存從系統金鑰鏈遷移至 Agenvoy API。 </detai | Medium | 3/28/2026 |
| v0.16.1 | > v0.16.0 -> v0.16.1 ## Summary Expanded extension ecosystem with Threads and yt-dlp tools, refactored internal package hierarchy for clearer separation of concerns, and improved filesystem path handling and exclude logic. <details> <summary>翻譯</summary> 擴展生態系新增 Threads 及 yt-dlp 工具,重構內部套件層級以明確職責分離,並改善檔案系統路徑處理與排除邏輯。 </details> ## Changes ### ADD - Add Threads extension tools (get-quota, publish-text/image/carousel, refresh-token) with cross-platform install script - Add yt-dlp e | Medium | 3/24/2026 |
| v0.16.0 | > v0.15.2 -> v0.16.0 ## Summary 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. <details> <summary>翻譯</summary> 新增 script tool 子系統,讓 agent 可自動發現並執行本地 JavaScript 與 Python 腳本(stdin/stdout JSON 協定),架構與現有 API tool 對稱。同時重構內部套件結構,並修正 Discord 上傳問題 | Medium | 3/23/2026 |
| v0.15.2 | > v0.15.1 -> v0.15.2 ## Summary Add new tools (YouTube fetch, Discord Modal commands) and introduce per-model token usage tracking and configurable reasoning levels across all providers. <details> <summary>翻譯</summary> 新增工具(YouTube 擷取、Discord Modal 指令),並引入逐模型 Token 用量追蹤與各 provider 可設定的推理層級。 </details> ## Changes ### ADD - Add YouTube metadata fetch tool (`internal/tools/apis/youtube/`) - Add Discord Modal API key commands and secure terminal key input (`internal/discord | Low | 3/22/2026 |
| v0.15.1 | > v0.15.0 -> v0.15.1 ## Summary Fix image compatibility for Copilot Claude/Gemini models by normalizing all images to JPEG, and improve system prompt positioning to prevent instruction loss in long conversations. <details> <summary>翻譯</summary> 修復 Copilot Claude/Gemini 模型的圖片相容性問題(統一轉 JPEG),並調整 system prompt 位置以避免長對話中指令遺失。 </details> ## Changes ### FIX - Normalize all uploaded images to JPEG format to prevent Copilot Claude/Gemini "image media type not supported" error - Add `go | Low | 3/21/2026 |
| v0.15.0 | > v0.14.2 -> v0.15.0 ## Summary Add Copilot Responses API endpoint support and token-budget message trimming, harden sandbox with sensitive path denial rules, and make history message limits configurable. <details> <summary>翻譯</summary> 新增 Copilot Responses API endpoint 支援與 token-budget 訊息裁剪機制,強化 sandbox 敏感路徑存取拒絕規則,並支援歷史訊息上限環境變數設定。 </details> ## Changes ### FEAT - Add Copilot Responses Endpoint support for GPT-5.4 and Codex models with dedicated response parsing - Add token-bud | Low | 3/20/2026 |
| v0.14.2 | > v0.14.1 -> v0.14.2 ## Summary Fix bwrap sandbox failure on Ubuntu 24.04+ by adding runtime availability probe with automatic fallback to direct execution, and include script output in cron/task error logs for better diagnostics. <details> <summary>翻譯</summary> 修正 Ubuntu 24.04+ 上 bwrap 沙箱因 AppArmor 限制導致執行失敗的問題,新增執行期可用性探測與自動 fallback 機制,並在排程錯誤日誌中附加腳本輸出以利除錯。 </details> ## Changes ### FIX - Add bwrap runtime probe (`checkBwrap`) with `sync.Once` to detect namespace permission fail | Low | 3/18/2026 |
| v0.14.1 | > [!WARNING] > Deprecated, please download [v0.14.2](https://github.com/pardnchiu/Agenvoy/releases/tag/v0.14.2) directly. > v0.14.0 -> v0.14.1 ## Summary Fix SyncSkills failing to create skill directories when the parent skills directory does not exist, by replacing os.Mkdir with os.MkdirAll. <details> <summary>翻譯</summary> 修正 SyncSkills 在 skills 父目錄不存在時無法建立子目錄的問題,將 os.Mkdir 改為 os.MkdirAll。 </details> ## Changes ### FIX - Fix SyncSkills using os.Mkdir which fails when parent | Low | 3/18/2026 |
| v0.14.0 | > [!WARNING] > Deprecated, please download [v0.14.2](https://github.com/pardnchiu/Agenvoy/releases/tag/v0.14.2) directly. > v0.13.0 -> v0.14.0 ## Summary 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. <details> <summary>翻譯</summary> 新增作業系統原生沙箱隔離(Linux 自動安裝 bubblewrap)、所有 Provider 的每次請求 token 用量追蹤,以及將工具處理器重構為獨立命名檔案。 </details> ## Ch | Low | 3/18/2026 |
| v0.13.0 | > v0.12.0 -> v0.13.0 ## Summary Migrate scheduler storage to JSON with full ID-based CRUD, replace switch-based tool routing with a self-registering Registry pattern, and harden filesystem access by restricting absolute paths to the current user's home directory. <details> <summary>翻譯</summary> 將排程儲存遷移至 JSON 並提供完整的 ID-based CRUD 操作,以自註冊 Registry 模式取代 switch-based tool routing,並限制絕對路徑僅允許當前使用者 home 目錄以加固檔案系統存取。 </details> ## Changes ### FEAT - Add JSON-based persistent storage for | Low | 3/16/2026 |
| v0.12.0 | > v0.11.2 -> v0.12.0 ## Summary Introduced a full scheduler subsystem with one-time and recurring cron task support, replaced the custom cron parser with go-scheduler, and centralized filesystem paths, session management, and embedded assets into dedicated packages. <details> <summary>翻譯</summary> 新增完整排程子系統,支援一次性與週期性 cron 任務,以 go-scheduler 取代自製 cron 解析器,並將檔案路徑、session 管理與嵌入資源集中至獨立套件。 </details> ## Changes ### FEAT - Add one-time task scheduler with script execution, file p | Low | 3/14/2026 |
| v0.11.2 | > v0.11.1 -> v0.11.2 ## Summary Patch release fixing error memory keyword matching, system prompt merging in Claude provider, and simplifying tool error file storage by removing date-based directory partitioning. <details> <summary>翻譯</summary> 修補版本,修正錯誤記憶關鍵字比對邏輯、Claude provider 多段 system prompt 合併,並簡化工具錯誤檔案儲存結構,移除日期分層目錄。 </details> ## Changes ### FIX - Fix bidirectional keyword matching in error memory lookup (previously only checked if keyword contains query, now also checks | Low | 3/11/2026 |
| v0.11.1 | > v0.11.0 -> v0.11.1 ## Summary Patch release focused on fixing Gemini multipart message handling, improving file write atomicity across the codebase, and adding tool execution error tracking with hash-based lookup. <details> <summary>翻譯</summary> 修補版本,主要修正 Gemini 多部分訊息處理問題,提升全域檔案寫入的原子性保障,並新增工具執行錯誤的 hash 追蹤機制。 </details> ## Changes ### FIX - Fix Gemini provider silently dropping file and image content when message contains `[]ContentPart` — now correctly converts text parts an | Low | 3/11/2026 |
| v0.11.0 | > v0.10.2 -> v0.11.0 ## Summary Introduces a declarative extension architecture: built-in API tools are migrated to JSON-based API Extensions, and Skill Extensions are distributed via an auto-sync mechanism that downloads official skills from GitHub at startup. <details> <summary>翻譯</summary> 引入宣告式 Extension 架構:內建 API 工具遷移為 JSON 格式的 API Extension,Skill Extension 則透過啟動時自動從 GitHub 下載的同步機制發布。 </details> ## Changes ### FEAT - Migrate built-in API tools (`yahoo-finance`, `exchang | Low | 3/10/2026 |
| v0.10.2 | > v0.10.1 -> v0.10.2 ## Summary Fixes invalid API requests to OpenAI reasoning models (`gpt-5`, `gpt-5-mini`, `gpt-5-nano`, `gpt-4.1`) by conditionally omitting the `temperature` parameter, which these models do not support. Also adds configurable planner model selection and a makefile for common workflows. <details> <summary>翻譯</summary> 修正對 OpenAI 推理模型(`gpt-5`、`gpt-5-mini`、`gpt-5-nano`、`gpt-4.1`)發送請求時帶入不支援的 `temperature` 參數的問題。同時新增可設定的 planner 模型選擇機制與 makefile。 </details> ## Cha | Low | 3/10/2026 |
| v0.10.1 | > v0.10.0 -> v0.10.1 ## Summary Refactors CLI provider setup to use an embedded model registry for interactive selection, and standardizes temperature to 0.2 across all providers. <details> <summary>翻譯</summary> 重構 CLI Provider 設定流程,使用內嵌模型登錄檔實現互動式選擇,並將所有 Provider 的 temperature 統一設定為 0.2。 </details> ## Changes ### REFACTOR - Refactor `cmd/cli/addProvider.go` to delegate model selection to `selectModelFromList`, using the provider registry to display an interactive `promptui.Sel | Low | 3/9/2026 |
| v0.10.0 | > v0.9.0 -> v0.10.0 ## Summary Adds Discord server with full slash command support, file attachment sending, and multi-layer sensitive path security restrictions. Also introduces a browser `download_page` tool with readability extraction and skip tracking. <details> <summary>翻譯</summary> 新增 Discord server 模式(含完整 slash command 支援)、檔案附件傳送功能,以及多層敏感路徑安全限制。另新增 browser `download_page` 工具,支援可讀性萃取與跳過追蹤。 </details> ## Changes ### FEAT - Add `cmd/server/main.go` as standalone Discord | Low | 3/7/2026 |
| v0.9.0 | > v0.8.0 -> v0.9.0 ## Summary Adds file injection, image input, error memory, and web search caching as new user-facing capabilities, alongside a remove command and public API refactor that exposes session/agent selection for library consumers. <details> <summary>翻譯</summary> 新增檔案注入、圖片輸入、錯誤記憶與網路搜尋快取等使用者功能,同時新增 remove 指令並重構公開 API,將 Session / Agent 選取邏輯開放給函式庫使用者直接呼叫。 </details> ## Changes ### FEAT - Add `--file <path>` flag to inject local file content into prompts as embedded | Low | 3/6/2026 |
| v0.8.0 | > v0.7.2 -> v0.8.0 ## Summary Alpha milestone renaming the project to **Agenvoy** under AGPL-3.0 license, introducing OS keychain-based API key management and named compat provider instances. <details> <summary>翻譯</summary> Alpha 里程碑版本,正式更名為 **Agenvoy** 並採用 AGPL-3.0 授權,新增基於 OS Keychain 的 API 金鑰管理,以及具名 compat provider 實例支援。 </details> ## Changes ### BREAKING - Rename project from previous name to **Agenvoy** with full package path migration (`github.com/pardnchiu/agenvoy`) | Low | 3/1/2026 |
| v0.7.2 | > v0.7.1 -> v0.7.2 ## Summary Refactored the CLI entry point into focused modules, unified package naming conventions across the exec layer, and strengthened the session summary merge strategy to preserve historical context across turns. <details> <summary>翻譯</summary> 將 CLI 入口拆分為職責明確的獨立模組,統一 exec 層的 package 命名慣例,並強化 Session Summary 合併策略以保留跨輪次的歷史上下文。 </details> ## Changes ### UPDATE - Strengthen summary merge strategy: new `mergeSummary` function deep-merges array fields (`con | Low | 2/28/2026 |
| v0.7.1 | > v0.7.0 -> v0.7.1 ## Summary Fix race conditions in all provider `model` fields by migrating from mutable package-level `var` to instance-level struct fields, and repair context propagation chain broken by `context.Background()` usage in tool execution. <details> <summary>翻譯</summary> 修正所有 Provider 中因可變 package-level `var` 導致的 Race Condition(改為 struct 欄位存儲),並修復工具執行中因使用 `context.Background()` 造成的 Context 傳遞鏈斷裂。 </details> ## Changes ### FIX - Fix race condition in all provider | Low | 2/27/2026 |
| v0.7.0 | > v0.6.0 -> v0.7.0 ## Summary Major architectural refactor, LLM-driven agent routing, OpenAI-compatible endpoint support, and enhanced session reliability through file locking and atomic writes. <details> <summary>翻譯</summary> 大型架構重構,LLM 驅動的 Agent 路由、支援 OpenAI 相容端點,以及透過檔案鎖與原子寫入提升 session 可靠性。 </details> ## Changes ### FEAT - Add LLM-driven automatic agent routing mechanism to dynamically select the best provider per request - Add `compat` provider supporting any OpenAI-compat | Low | 2/27/2026 |
| v0.6.0 | > v0.5.0 -> v0.6.0 ## Summary Introduces a summary-based persistent memory system that compresses conversation state into structured JSON and injects it across sessions, enabling the agent to recall prior conclusions without replaying full history. Includes a centralized config path utility and refactors scattered path construction logic. <details> <summary>翻譯</summary> 新增概要式持久記憶機制,將對話狀態壓縮為結構化 JSON 並跨 Session 注入,使 Agent 無需重播完整歷史即可引用先前結論。同時抽離集中式配置路徑工具,重構散落各處的路徑組合邏輯。 </details> ## C | Low | 2/24/2026 |
| v0.5.0 | > v0.4.0 -> v0.5.0 ## Summary Add three new built-in tools (`fetch_page`, `search_web`, `calculate`) and a headless Chrome browser subsystem, bringing the total to 14 tools. Simultaneously refactor the tool executor routing layer by extracting per-package `Routes` functions, improving modularity and Context propagation across the execution pipeline. <details> <summary>翻譯</summary> 新增三個內建工具(`fetch_page`、`search_web`、`calculate`)與 Chrome 無頭瀏覽器子系統,工具總數達 14 個。同步重構工具執行器路由層,將各套件邏輯抽離為獨立 `Rou | Low | 2/23/2026 |
| v0.4.0 | > v0.3.0 -> v0.4.0 ## Summary Add four built-in API tools (weather, stock, news, HTTP) and a JSON-driven dynamic API adapter, alongside a Skill auto-matching engine and `patch_edit` tool. Internally, all provider packages migrate to a `provider/` subdirectory, the output layer shifts from `io.Writer` to an event channel model, and file tools are reorganized into a dedicated `internal/tools/file/` subpackage. <details> <summary>翻譯</summary> 新增四個內建 API 工具(天氣、股票、新聞、HTTP)與 JSON 驅動的動態 AP | Low | 2/22/2026 |
| v0.3.0 | > v0.2.0 -> v0.3.0 ## Summary Add multi-agent backend support (OpenAI, Claude, Gemini, Nvidia) with unified Agent interface architecture, complete filesystem toolchain, and interactive confirmation mechanism. <details> <summary>翻譯</summary> 新增多 Agent 後端支援(OpenAI、Claude、Gemini、Nvidia),建立統一 Agent Interface 架構,完善檔案系統工具鏈與互動式確認機制。 </details> ## Changes ### FEAT - Add OpenAI Agent with API key authentication and `gpt-5-nano` default model - Add Claude Agent with Anthropic Messages AP | Low | 2/9/2026 |
| v0.2.0 | > v0.1.0 -> v0.2.0 ## Summary Add complete filesystem toolchain (list_files, glob_files, write_file, search_content, run_command) with command whitelisting, safe delete mechanism, interactive confirmation prompts, and refactor Scanner architecture with Copilot authentication flow improvements. <details> <summary>翻譯</summary> 新增完整檔案系統工具鏈(list_files、glob_files、write_file、search_content、run_command),包含指令白名單、安全刪除機制、互動式確認提示,並重構 Scanner 架構與 Copilot 認證流程。 </details> ## Changes ### FEAT | Low | 2/8/2026 |
| v0.1.0 | > v0.0.0 -> v0.1.0 ## Summary Initial release of go-agent-skills a lightweight CLI tool for executing skills with GitHub Copilot authentication, featuring device code login, token management, skill scanning and execution with tool invocation loop. <details> <summary>翻譯</summary> go-agent-skills 首次發行版本,一個輕量級的 CLI 工具,提供 GitHub Copilot 認證、裝置碼登入、token 管理、技能掃描與執行工具呼叫循環功能。 </details> ## Changes ### FEAT - Add skill execution command with tool invocation loop mechanism for proces | Low | 2/7/2026 |