Skip to content

Releases: zhayujie/CowAgent

2.2.0

Choose a tag to compare

@zhayujie zhayujie released this 30 Sep 02:14

🌐 English | 中文

🧩 Capabilities Center

The former Skills menu is now Capabilities, a single place in the Web console and desktop client to manage built-in tools, MCP tools, and skills:

  • Skill installation: install from Cow Skill Hub, GitHub, or ClawHub, or upload an archive, a SKILL.md, or a folder. Every skill is previewed first and only installed after you confirm.
  • MCP configuration: add, edit, and remove MCP servers in the UI, covering the stdio, SSE, and Streamable HTTP transports. Both form and JSON editing are available, and you can paste one or more mcpServers entries directly. Saving checks the connection and lists the server's tools; changes take effect on the next message without a restart. Thanks @tsumon (#3155)
  • Tool retrieval diagnostics: see how MCP tools were ranked and why retrieval fell back during a conversation, making it easier to find out why a tool was not picked. Thanks @zhongjunqi7657 (#3165)

Capabilities

Related docs: MCP Tools, Installing Skills

🤝 Multi-Agent Collaboration

  • Task handoff as separate messages: when an Agent delegates a task to a team member, the member's reply streams as its own message under its own name and avatar, on both the Web console and the desktop client.
  • Team session management: clearing context now clears it for every participant in a team session; a group chat shows its members in the session list before the first message is sent; the @ picker can select the Agent that owns the session.
  • Data isolation: skills, uploaded file previews, and website directories are now scoped per Agent.
  • Fixes:
    • Fixed an Agent answering on behalf of a team member, and an Agent's own tool calls disappearing after a refresh.
    • Fixed deleted Agents lingering in member lists, which left direct chats unable to use tools (Thanks @Frank-zhu0404 #3234).
    • Fixed the default Agent not being resolved when building team members and cleaning up channel teams (Thanks @c020627 #3205).
    • Fixed some endpoints failing to locate the Agent when the parameter was sent only in the request body (Thanks @c020627 #3177).

Task handoff as separate messages

🖥 Console Upgrades

  • Frontend and backend rebuild: the Web console's frontend pages and backend API controllers are split into feature modules, replacing the oversized single files that had become hard to maintain. Frontend assets load per module and are cached, so a refresh no longer downloads everything again. Each page has its own URL (such as /agents, /settings, /scheduler), browser back and forward work, a refresh stays on the current page, and the old /chat address redirects automatically. Thanks @zkjqd (#3167, #3172)
  • Message navigator: jump quickly to earlier questions in a session. The Web console opens a question list from a button in the header, and the desktop client adds a navigation rail on the right.
  • One-click update: the version menu in the sidebar checks for and applies source updates in one click. User data is backed up before updating, and a failed update does not affect the running service. Thanks @tsumon (#3154)
  • Reply status: stopped, interrupted, and in-progress replies are labeled accordingly. A reply cut off by a service restart shows a clear notice, and after a refresh you can keep following a reply that is still being generated.

🧠 Memory & Knowledge Base

  • Reranking: memory retrieval supports an optional rerank model that re-scores recalled results for better precision. It is off by default and enabled via rerank_provider. Thanks @SummerCaptain (#3230)
  • Hybrid retrieval scoring: vector and keyword retrieval are now fused by rank-normalized scores, fixing diluted scores when one side has no hits and mismatched score scales between the two. Thanks @SummerCaptain (#3164)
  • Knowledge base index: index.md is updated when documents are deleted or moved (Thanks @alanyz106 #3237); a large index injects only the list of titles to avoid taking up too much conversation context.
  • Shared knowledge base: fixed reading and syncing a shared knowledge base located outside the Agent workspace (Thanks @lorenzozanee #3182, @Jeremy-xuan #3183); edits made through tools or the console now mark the index for refresh (Thanks @NBSW002 #3184, @c020627 #3206).
  • Long-term memory: when MEMORY.md exceeds its length limit, the newest entries are kept first (Thanks @SEVEN-us #3244).
  • Document chunking: fixed content before the first heading of a long Markdown document not being indexed, and content being indexed twice when heading levels are skipped; /memory status prompts you to rebuild the index (Thanks @Bdysj #3309).
  • Session loading: opening a session no longer triggers a memory scan and index rebuild, so the first message in a new session responds faster.

Related docs: Memory

📐 Context & Token Cost

  • Higher model cache hit rate: the system prompt now carries only the current date, and the exact time comes from a new time tool. The system prompt stays stable throughout the day, which greatly improves model cache hit rates and lowers token usage. Thanks @a1094174619 (#3250)
  • Context trimming: turn-based and token-budget trimming are merged into a single budget-driven pass. No summarization call is made while within budget, avoiding unnecessary model requests, and the previous turn is always kept. Thanks @liuns-yang (#3188), @Frank-zhu0404 (#3199), @lorenzozanee (#3185)
  • Follow-up messages: messages you send while the model is still streaming are now picked up promptly (Thanks @tsumon #3190).

🤖 Model Capabilities

  • New models: added gpt-6.1-sol, gpt-6-luna and gpt-6-sol, with gpt-6.1-sol as the default recommended OpenAI model (tool calling goes through the Responses API); added claude-opus-5-5 as the default recommended Claude model.
  • Context window: the Claude 5 family (claude-opus-5-5, claude-opus-5, claude-sonnet-5, claude-fable-5, etc.) is now counted at a 1M context window and 128K max output, instead of the previous flat 200K. Claude 4 and earlier are unchanged.
  • OpenAI Responses API: a new open_ai_api_type setting. Set it to responses to call the Responses API, for endpoints that no longer provide /chat/completions. The default auto keeps the existing behavior.
  • MiniMax: image understanding now uses M3's native multimodal capability (Thanks @octo-patch #3160).
  • Qwen: qwen3.8-max and qwen3.8-flash are handled as hybrid-thinking models; fixed DashScope sessions ignoring the system prompt set by the role plugin (Thanks @Bdysj #3310).
  • Speech recognition: uses the configured ASR model instead of always using whisper-1.
  • AnySearch: configurable search region and language, with stricter validation of returned results (Thanks @WangPan59 #3153, #3163).

📡 Channels

  • DingTalk:
    • AI card streaming replies when dingtalk_card_enabled is on (Thanks @tsumon #3162); replies fall back to Markdown when cards are off or a card fails to send.
    • Receives file attachments (Thanks @tsumon #3161).
    • Fixed error and notice replies being dropped, group messages outside the allowlist raising errors, and rich-text messages without images getting no response (Thanks @Lesereingrape #3282, #3284, #3293).
  • QQ:
    • Voice messages use the official transcription and are handed to the Agent immediately (Thanks @HnBigVolibear #3195).
    • Receives files, renders Markdown replies, and keeps the original file name when sending documents (Thanks @c020627 #3209).
    • Group chat sessions now follow group_shared_session, consistent with other channels: each member gets their own session by default, whereas earlier versions shared one session across the whole group. Set "group_shared_session": true to keep the previous behavior (Thanks @c020627 #3209).
  • Feishu: group messages that only @-mention other members no longer trigger a reply, and rich-text group messages are checked against their @ list (Thanks @c020627 #3173); image and file replies upload directly from memory (Thanks @c020627 #3226); webhook callbacks now verify the token.
  • WeCom: the WeCom app supports file and video replies (Thanks @c020627 #3249) and replying with locally generated images (Thanks @Lesereingrape #3312), and its callback verifies the Corp ID (Thanks @c020627 #3159); WeCom Bot group messages are correctly recognized as @-mentions (Thanks @c020627 #3193).
  • WeChat Customer Service: sends local media files, and file replies include their accompanying text (Thanks @c020627 #3262); fixed the message sync cursor not advancing in time (Thanks @rudycelekli #3258).
  • WeChat: fixed managing multiple channel instances in multi-Agent setups; login state is kept when channel instances change.
  • Video replies: Discord, Slack, Telegram, Feishu, DingTalk, WeChat Customer Service, and WeChat Official Account upload locally generated videos directly, instead of dropping them or sending only the file path (Thanks @Lesereingrape #3289, #3299, #3321, @c020627 #3297).
  • Slack / Telegram: Telegram renders ~~~ code blocks correctly (Thanks @huiq777 #3287); Slack files with the same name no longer overwrite each other (Thanks @rudycelekli #3265).
  • WeChat Official Account: compatible with Python 3.13 (Thanks @c020627 #3214).

🛡 Stability & Security

This release makes task execution more re...

Read more

2.1.9

Choose a tag to compare

@zhayujie zhayujie released this 14 Sep 06:38

🌐 English | 中文

This is a refinement release for the 2.1.8 multi-Agent version, building on it with a series of improvements and fixes across multi-Agent collaboration, model capabilities, and channel integration.

🤝 Multi-Agent Experience

Further polish around using multi-Agent teams:

  • Multi-Agent session selection: the in-session multi-Agent selector adds a lead-Agent marker that clearly separates the lead Agent from members, while simplifying the view in single-Agent setups.
  • Collaboration fix: fixed failures when delegating tasks from non-lead Agents in multi-Agent group chats, now correctly identifying member Agents.
  • Member Agent image rendering: fixed images generated by non-default Agents failing to render on the Web console and desktop client.
  • Group-chat entry: the desktop Team page adds a group-chat entry, so you can start a group session directly from an Agent team.

Multi-Agent group chat

📡 Channel Integration Fixes

Fixed key issues along the console's channel start/stop path for more stable channel integration:

  • Desktop channel integration fix: fixed channels failing to start in the desktop client.
  • Channel stop fix: fixed a lost app_module lookup during the channel stop flow that caused disconnect errors (a regression introduced by #3141).
  • QQ channel reconnection: fixed the QQ channel not reconnecting after a silent WebSocket disconnect; it now reconnects automatically.

🤖 Model Capabilities

  • Model list configuration: model providers can now configure a model list, setting the model name, model type, context window, max output, and more. Thanks @alanyz106 (#3146)

Model list configuration

  • Multiple fallback models: when the primary model fails, CowAgent now tries an ordered fallback chain in turn, replacing the previous single fallback model. Thanks @alanyz106 (#3125)

Multiple fallback models

  • Fallback credential fix: fixed credential resolution during fallback, which now resolves credentials by the provider actually routed to rather than the global configuration. Thanks @alanyz106 (#3142)
  • New image models: added gpt-image-2.5-flare and gpt-image-2.5-sunburst. Thanks @cowagent (#3140)

🛠 Improvements & Fixes

  • Config file tolerance: tolerate a UTF-8 BOM in config.json, and stop the pre-login 401 polling to avoid invalid requests before sign-in.
  • Image generation fixes:
    • fixed Baidu Ernie IMAGE_CREATE crashing when unsupported, now returning an error message instead (Thanks @c020627 #3144).
    • fixed Midjourney reply retries not recursing into the send logic correctly (Thanks @c020627 #3151).
  • Voice fix: fixed silk voice transcoding by first decoding silk into a standalone wav and then re-encoding to mp3, avoiding overwriting the source file (Thanks @c020627 #3149).
  • Media URL classification: determine media type from the resolved URL path, fixing misclassified media links (Thanks @c020627 #3150).
  • Baidu Translate: fixed Baidu Translate not reporting the API error after all retries failed (Thanks @c020627 #3147).
  • Background command detection: restrict run_in_background to long-running processes, preventing tasks from being marked complete too early.
  • Tool output truncation: report the byte-based truncation reason correctly when kept lines are partially truncated (Thanks @c020627 #3137).
  • Web mobile layout: improved the console layout on mobile.
  • Desktop client: fixed the multi-Agent team menu not showing.

📦 How to Upgrade

  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.
  • Desktop client: check for updates and update with one click inside the client, or get the latest version from the download page.

Release date: 2026.09.14 | Full Changelog

2.1.8

Choose a tag to compare

@zhayujie zhayujie released this 11 Sep 01:54

🌐 English | 中文

🤝 Multi-Agent Teams

CowAgent is now a multi-Agent framework. You can create multiple Agents, each with its own role, to form a team and collaborate on complex tasks within a single session. Supported on the Web console, the desktop client, and channel integrations:

  • Team management: create and maintain Agents, configure name, responsibilities, default model, skills, and knowledge, and copy the setup from an existing Agent.
  • Resource isolation: each Agent has its own workspace, memory, and sessions; the knowledge base and skills can be shared or kept independent.

Agent team

  • Group collaboration: add multiple Agents to one session and use @ to direct a message to a specific member, with each Agent using its own configured model.
  • Task delegation: a group chat has a lead Agent that can hand a task off to the member best suited for it based on their responsibilities, with support for multi-level delegation and configurable scope, depth, and timeout.

Agent-team-group

  • Multiple channel instances: an IM channel of the same type can now run multiple instances, each bound to a single Agent or an Agent team. Supported on WeChat, WeCom smart bots, Feishu, DingTalk, QQ, Telegram, Slack, Discord, and more.

Agent-team-channel

Thanks @AaronZ345 (#2975, #2973), @zkjqd (#3096), @cowagent (#3118)

Docs: Agent Teams

⏰ Scheduled Task Upgrades

Scheduled tasks can now be created and managed from the console, with channel recipients and execution records added:

  • Manual task creation: create, edit, and run tasks directly on the tasks page, and select the channel instance and recipient.
  • Channel recipient management: maintain trusted recipients per channel instance, so a task can be delivered to a designated recipient rather than only the channel where it was created. Thanks @dajiaohuang (#3043)
  • Execution records: a new execution-records page lets you review the history list and the details of each run. Thanks @mengluo04 (#3107)
  • Concurrent-update fix: fixed tasks being lost on concurrent updates (Thanks @Whxuan0701 #3062).

📊 Context-Usage Visualization

Context consumption is now visible and controllable, making token cost easier to manage:

  • Context-usage view: a ring view replaces the previous clear-context button and shows a full breakdown of what makes up the context.
  • Context actions: below the ring view you can trigger smart compaction, clear the context, or set the maximum context size.
  • Context calculation: the usage breakdown is derived automatically from the model's reported usage, with agent_max_context_tokens available as a user-configurable cost cap.

Thanks @chimyves (#3087), @sufan721 (#3079)

🤖 Model Capabilities

  • New models: added deepseek-flash (DeepSeek V4.1 Flash), gpt-6-astra, claude-fable-5-1, qwen3.8-flash, glm-5.3-flash, gemini-3.8-flash, and the vision model deepseek-v4-flash-vision-exp (Thanks @a1094174619 #3094).
  • Model fallback: configure a fallback model under Model Config > Primary Model, which takes over automatically when the primary model fails, preventing interruptions from a single provider outage. Thanks @alanyz106 (#3099)
  • Six new search providers:

📝 Workspace File Editing

Workspace files, long-term memory documents, and skill definitions can now be edited and saved directly in the Web console and the desktop client:

  • In-place editing: text files in the workspace, memory, and skill modules (Markdown, code, CSV, HTML, plain text, and more) can be edited directly, with keyboard shortcuts for Ctrl+S to save, Esc to exit, and Tab to indent.
  • Safe saving: saving checks for conflicts against the file's modification time when it was opened; if the Agent changed the file in the meantime, you are asked first instead of overwriting it. Closing the panel, switching files, switching sessions, or switching workspaces prompts for confirmation on unsaved changes.

Thanks @zkjqd (#3076)

🛠 Improvements & Fixes

  • Skill fixes:
  • MCP enhancements:
    • support tool-name prefixes (Thanks @georgeatparallel #3116)
    • recover expired Streamable HTTP sessions (Thanks @yiheng-kkk ad1f686)
    • reuse the subprocess and drop duplicate load logs when multiple Agents share the same mcp.json
  • Image generation:
  • Sub-Agent fix: fixed a sub-Agent clearing the parent session's fallback settings (Thanks @alanyz106 #3111).
  • Structured chunking: Markdown memory and knowledge documents are chunked by heading structure, with a prompt to rebuild when the chunk version is outdated. Thanks @alanyz106 (#3115)
  • Streaming error fix: fixed seven model bots raising a NameError on streaming errors because the generator closed over the already-cleared exception variable, masking the real upstream error (Thanks @Anai-Guo #3128).
  • Memory index fix: fixed blank text chunks causing the embeddings API to error and the entire memory index build to fail, falling back to keyword search (Thanks @6vision #3121).
  • Interruption detection: pass stop_reason through to the Agent loop to distinguish a model ending on its own from being cut off by the output limit (Thanks @6vision #3074).
  • Attachment detection: match keyword attachment URLs against the resolved path (Thanks @Whxuan0701 #3061).
  • Gateway attribution: add source attribution to OrcaRouter gateway requests (Thanks @Marc-oss-hub #3058).
  • Proxy rendering: set the Content-Type on /chat so the console renders correctly behind a reverse proxy with nosniff (Thanks @alanyz106 #3110).
  • Avatar handling: fixed avatar upload failing due to text decoding, now reading raw bytes (Thanks @mengluo04).
  • Evaluation tool: added a minimal Agent trajectory evaluation flow. Thanks @yanzhiliaoliao (#3100)
  • DingTalk channel: disable the proxy on streaming connections and back off on reconnect, eliminating recurring errors.
  • Windows client: fixed an update installation breaking the shortcut.
  • Desktop client: fixed numeric Agent settings like max context tokens not being clearable (Thanks @zkjqd #3130).
  • Backup and restore: backups now include all Agent workspaces, with fixes for nested archiving, restore layout, and version compatibility in multi-Agent setups.
  • Docs:
    • added a Traditional Chinese entry to the Japanese docs language switcher (Thanks @c020627 #3072)
    • added Kimi-related links (Thanks @oriengy #2885)

📦 How to Upgrade

  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.
  • Desktop client: check for updates and update with one click inside the client, or get the latest version from the download page.

Release date: 2026.09.11 | Full Changelog

2.1.7

Choose a tag to compare

@zhayujie zhayujie released this 21 Aug 02:39

🌐 English | 中文

🗂 Multiple Workspaces

The Agent is no longer tied to a single directory — you can set up several project workspaces and give each session its own. Available in both the Web console and the desktop client:

  • Multiple workspaces: create or open any directory as a project workspace; the documents, web pages, and code the Agent produces are created and managed there.
  • Per-session workspace: each session is bound to its own project workspace, so tasks running side by side stay out of each other's way.
  • Per-session model: switch the model for a single session; new sessions start from the global default.
  • Grouped sessions: the session list is grouped by workspace, with pinning, reordering, renaming, and deleting.
  • Shared system resources: memory, skills, and the knowledge base still live in the system workspace (~/cow by default).

Docs: Workspace

🔐 Permission Modes

Sessions now carry their own permission mode, which works together with workspaces to control how far the Agent can reach:

  • Three levels: read-only, workspace-write, and full-access, set independently for each session.
  • Default mode: pick a default permission mode, and new sessions start with it.
  • Actionable denials: when a tool call is blocked, the hint is clickable so you can adjust the permission on the spot.

🖥 Desktop Client

  • Voice input: a voice button in the chat input transcribes what you say straight into the box; speech recognition and synthesis also work with custom providers and models. Thanks @chimyves (#3052, #3050)
  • Drafts kept: leaving the chat page and coming back no longer loses unsent text and attachments. Thanks @chimyves (#3040)
  • Launch at login: a new toggle in system settings, off by default.
  • Startup diagnostics: when the backend fails to start, the client reports what actually went wrong instead of a generic error.
  • Log download: the run-log page can download the log file, and local uploads gained retries and clearer errors.

Download: CowAgent Desktop

Docs: Desktop Client

🔔 Task Notifications

The Web console and the desktop client both raise a notification (with a sound) when an Agent run finishes or fails, so you can walk away from a long task:

  • Both clients: OS notifications on the desktop, browser notifications on the Web — only while the window isn't focused. Clicking one takes you back to the session.
  • Unread badge: the Web tab shows an unread count while it's hidden, cleared once you switch back.
  • Separate toggles: notifications and the sound are two independent switches, both on by default. Cancelling a task yourself no longer triggers a failure notification.

Thanks @chimyves (#3056, #3055)

🤖 Model Updates

  • New models: glm-5.3, qwen3.8-max, gemini-3.7-flash, and gemini-3.6-flash, each set as its provider's default.
  • Merged config page: the Web console folds the Models page into Config, split into a Basic and a Models tab, so there's less jumping around.
  • Call fixes: fixed GLM-5.3's forced thinking, plus routing and base-URL handling for some DashScope models; custom models now show up in the session model picker.

🛠 Improvements & Fixes

  • Image display: fixed local-path images and relative-path images inside knowledge docs not rendering; on the desktop, clicking an image in a chat or a document zooms it in place. Thanks @chimyves (#3046)
  • Windows drives: fixed the folder picker not listing drives on Windows. Thanks @CNXudiandian (#3048)
  • Windows shell guidance: better recovery guidance when a shell command fails on Windows. Thanks @dajiaohuang (#3065)
  • Cleaner IM replies: Agent replies on IM channels no longer carry thinking content. Thanks @LHMQ878 (#3044)
  • Scheduled tasks: fixed a task that failed across midnight never getting back on schedule (Thanks @chimyves #3054), and scheduled tasks being acknowledged instead of run.
  • Faster first message: streamlined memory system initialization so it no longer blocks a session's first message, noticeably cutting the wait before the initial reply.
  • Context trimming: fixed the AI reply not being saved when the context was trimmed.
  • Feishu channel: the streaming card now accumulates text across turns.
  • Docker: config.json survives container upgrades through the COW_DATA_DIR mount.

📦 How to Upgrade

  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.
  • Desktop client: check for updates and update with one click inside the client, or get the latest version from the download page.

Release date: 2026.08.21 | Full Changelog

2.1.6

Choose a tag to compare

@zhayujie zhayujie released this 12 Aug 08:32

🌐 English | 中文

🤝 Sub Agents

The main Agent can hand independent tasks off to sub agents and run them in parallel — improving results, lowering context cost, and speeding up work that can happen at the same time:

  • Isolated context: the intermediate work stays out of the main conversation, saving tokens and keeping the model focused.
  • Parallel execution: several sub agents can run at once, and the main Agent gathers their results when they finish. Both the Web console and the desktop client show the full run.
  • Customizable: two built-in types, general-purpose and explore, plus your own — drop a .md file under the workspace subagents/ directory to define a type with its own system prompt and tool set.
  • On by default: no setup needed; the main Agent decides when to delegate. Toggle it under Config → Agent, and tune nesting depth, concurrency, and timeout in config.json.

Thanks @AaronZ345 (#2976)

Docs: Sub Agents

🖥 Desktop Client

  • Scheduled-task notifications: the client receives scheduled and pushed messages and raises OS notifications.
  • Update panel: the update dialog now links to the release notes, so you can see what changed.
  • Custom provider models: custom providers get a free-form model input.
  • Startup fixes: fixed the backend startup hanging, added automatic port retry, and surfaced the real error on failure.

Download: CowAgent Desktop

Docs: Desktop Client

🧠 Reasoning Effort & Thinking

  • Reasoning-effort settings: native reasoning_effort configuration across Claude, Qwen, Kimi, and more, remembered per model. Thanks @tshicheng (#3007, #3009)
  • Claude thinking: Claude's thinking process can now be shown in the Web console and the desktop client, making its reasoning easier to follow.

🔒 Security Hardening

  • Guarded self-evolution writes: unattended writes now get validation and rollback, writes are serialized per workspace, and the protected write paths were narrowed so task files in the workspace are no longer touched by mistake. Thanks @lisheng-SenLee (#3011, #3016)
  • Skill path validation: skill install validates each file path more thoroughly. Thanks @LHMQ878 (#3006)
  • Dependency upgrades: the desktop client bumps js-yaml and linkify-it, fixing two exploitable denial-of-service issues. Thanks @anupamme

💾 Memory & Retrieval

  • Pluggable vector backend: memory's vector storage and retrieval sit behind a single interface, with SQLite as the default, making it easy to plug in an external vector store later. Thanks @AaronZ345 (#3021)
  • Index repair: fixed trigram FTS5 index corruption on chunk updates; a corrupted shared database now self-repairs.

Docs: Memory

🛠 Improvements & Fixes

  • Custom image providers: image generation supports custom providers, with live credential refresh and cleanup on deletion. Thanks @AaronZ345 (#3022)
  • Reliable SSE reconnection: the Web SSE lifecycle is now complete, reconnecting with event replay after a network drop and cutting message loss on long tasks. Thanks @lisheng-SenLee (#3014)
  • Reasoning display: fixed several issues with tool cards, file links, and image display in reasoning mode.
  • Rate-limit backoff: capped the backoff when the LLM is rate-limited, avoiding long waits. Thanks @tim-korso (#3018)
  • Quiet scheduled tasks: a scheduled task with nothing to report no longer sends an empty message. Thanks @kowkowhuang (#3001)
  • Service stop time: fixed an end-of-day time (such as 23:59) being rejected as a service stop time. Thanks @Iams4kura (#3020)
  • Domain scheme: fixed an explicit http/https scheme in WEBSITES_DOMAIN not being honored. Thanks @6vision (#3015)
  • WeChat media: fixed personal WeChat failing to send or receive images, files, and other media over unreliable networks, and refined image recognition.
  • Feishu channel: fixed new messages being dropped when their delivery lagged.
  • Telegram: fixed Markdown rendering and a long summary dropping attached files.
  • File replies: fixed a file reply dropping the accompanying text and other attachments, and a tool's file link stranding the client's tool card.
  • Docker: installs tzdata so the TZ environment variable takes effect.

📦 How to Upgrade

  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.
  • Desktop client: check for updates and update with one click inside the client, or get the latest version from the download page.

Release date: 2026.08.12 | Full Changelog

2.1.5

Choose a tag to compare

@zhayujie zhayujie released this 29 Jul 02:24

🌐 English | 中文

🗂 Workspace & File Preview

The chat page gains a visual view of the workspace: documents, web pages, and images the Agent produces can be previewed in place. Both the Web console and the desktop client support it.

  • Workspace browsing: browse the files under the workspace directory from the panel, with search and download to local.
  • File preview: HTML pages, documents, and images open directly in the side panel, and file paths in a reply are rendered as clickable cards.
  • File references: drag a workspace file into the conversation, or use @ in the input box to reference files and directories and pull them into the context.

🔧 Core Tool Improvements

A systematic pass over file search, read, write, edit, and shell tools, strengthening the Agent's file handling and coding abilities.

  • New file search tool: search_files searches the workspace by content or by file name, backed by ripgrep by default — markedly faster on large directories. Thanks @Maaayhan (#2982)
  • Line-numbered read output: read output now always carries line numbers, making it easier to locate and cite specific lines.
  • More accurate edits: edit no longer rewrites the surrounding indentation on a fuzzy match, and no longer lands on the wrong occurrence when the text repeats; replace-all was added; a file modified outside the Agent is now flagged.
  • Write-time syntax checks: write / edit validate the format of structured files before writing, and parse source files to report syntax errors back to the Agent.
  • Background commands: bash can run a command in the background, for long-running work such as starting a service or following logs; the default timeout for foreground commands was raised.
  • Cancellation takes effect immediately: clicking stop or running /cancel terminates the command that is currently running.

Docs: File Search

🧠 Context Management

  • Context compaction: the new /compact command summarizes and compacts the conversation context on demand, effectively cutting token usage.
  • Unified commands: /clear now uniformly clears the current session's context, with /context clear kept as an alias.
  • Larger default window: the default context limit was raised, so long conversations start trimming later.

Docs: Context Management

🖥 Desktop Client

  • Native on Mac: fixed the macOS arm64 installer carrying an x64 backend, substantially speeding up the main process and the browser tool on Apple Silicon machines.
  • Feishu channel added: fixed the Feishu channel missing from the client. The Feishu SDK is now a trimmed dependency (about 1 MB) downloaded on demand the first time the channel is enabled. Thanks @EvanProgramming (#2988)
  • Update prompt: the update dialog for a given version only opens automatically once.
  • Bundled search backend: the Windows client ships with ripgrep, so file search works out of the box.

Download: CowAgent Desktop

Docs: Desktop Client

✨ One-Click Prompt Optimization

The Web input box can now expand what you typed into a more complete and explicit instruction, and the optimization rules support custom templates. Thanks @sufan721 (#2989)

🔒 Security Hardening

  • MCP and file-write hardening: fixed an attack chain exploitable through prompt injection — malicious content could lead the Agent into rewriting the MCP config, and from there run arbitrary commands and steal keys. Thanks @Correctover (#2968)
  • Credential file protection: fixed the edit tool bypassing credential protection to read and write ~/.cow/.env.

🛠 Improvements & Fixes

  • bash config honored: fixed tools.bash.timeout and tools.bash.safety_mode in config.json being ignored. Thanks @EvanProgramming (#2986)
  • Memory workspace path: fixed the workspace path being resolved incorrectly in the global memory config. Thanks @Maaayhan (#2992)
  • Conversation history protection: fixed memory index self-repair that could clear conversation history along with it.
  • Session deletion: fixed a reply still in flight writing a deleted session back into the list.
  • Browser launch: fixed launching a duplicate instance when the browser was already running.
  • Accurate tool results: fixed misleading failures from several tools — exit codes from grep / find judged wrong, browser scripts falsely reported as syntax errors, relative image paths failing to resolve — reducing pointless retries.

📦 How to Upgrade

  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.
  • Desktop client: check for updates and update with one click inside the client, or get the latest version from the download page.

Release date: 2026.07.29 | Full Changelog

2.1.4

Choose a tag to compare

@zhayujie zhayujie released this 20 Jul 07:52

🌐 English | 中文

🖥 Desktop Client

Following the desktop client launched in the previous release, this version further improves browser capabilities, system compatibility, and overall experience:

  • Browser tool support: the client bundles browser capabilities and prefers reusing the system's installed Chrome / Edge, with optimized browser startup and access performance.
  • UI polish: refined visuals and interactions for the chat view, message bubbles, tool-call steps, and channel pages.
  • Windows code signing: Windows installers are now code-signed, reducing security warnings during installation.
  • Windows 7/8 support: added client support for legacy systems such as Windows 7/8, covering more environments.
  • Knowledge base link fix: fixed in-document links in the desktop knowledge base that failed to navigate.
  • Password login: the desktop client supports setting a login password, and fixes an issue where the window failed to load after a password was set.

Download: CowAgent Desktop

Docs: Desktop Client

🔌 MCP OAuth Authorization

Remote MCP servers now support OAuth authorization. When connecting to third-party MCP servers that require login, authentication can be completed via the standard OAuth flow — no more manually configuring and maintaining tokens.

Docs: MCP Tools

⏰ Scheduled Tasks

  • Silent mode: create silently-running scheduled tasks that execute in the background without pushing messages — ideal for undisturbed scenarios like data organization or periodic archiving. (#2954)
  • Manual run: manually trigger an existing task to run immediately from the console, without waiting for the next schedule. (#2958)
  • Preserve config on edit: fixed an issue where editing a task in the Web console could drop hidden fields such as the mode type. (#2959)
  • Cross-channel task command: added the /tasks management command, compatible across channels. (#2965)

Thanks @AaronZ345

Docs: Scheduled Tasks

💬 Feishu Channel Improvements

The Feishu channel gains a series of message-display and interaction enhancements for a better experience.

  • Streaming card polish: streaming cards add collapsible panels showing the thinking process, tool calls, and execution time. (#2963)
  • Markdown formatting: for non-streaming replies and scheduled pushes, messages containing Markdown are rendered as cards for clearer display. (#2962)
  • Scheduler cards: the /tasks command is presented as cards, with the ability to enable or disable tasks right from the card. (#2961)
  • Quoted message context: when a user quotes a message, the quoted content is automatically added to the context sent to the Agent. (#2966)
  • Remote image rendering: remote image links can now be rendered inside Feishu cards. (#2967)
  • Cancel on message recall: recalling a Feishu message automatically cancels its corresponding running or queued task. (#2978)

Thanks @AaronZ345

Docs: Feishu

💾 Data Backup & Restore

Added the cow backup and cow restore commands to export and restore local data — configuration, knowledge base, memory, and more — with one command, making migration and backup easy. Thanks @AaronZ345 (#2957)

Docs: Data Backup

🤖 New Models

  • Added support for kimi-k3
  • Added support for gpt-5.6-luna, gpt-5.6-terra, and gpt-5.6-sol

Docs: Models

🛠 Improvements & Fixes

  • Active-task steering: added the /steer command to inject new instructions during task execution, guiding or redirecting the running task on the fly. Thanks @AaronZ345 (#2977)
  • File editing: fixed an issue where fuzzy matching could locate the wrong position when editing files. Thanks @weijun-xia (#2945)

📦 How to Upgrade

  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.
  • Desktop client: check for updates and update with one click inside the client, or get the latest version from the download page.

Release date: 2026.07.20 | Full Changelog

2.1.3

Choose a tag to compare

@zhayujie zhayujie released this 08 Jul 08:07

🌐 English | 中文

🖥 Desktop Client

Introducing the CowAgent Desktop client for macOS and Windows — your local super AI assistant, truly ready to use out of the box.

Download: CowAgent Desktop

CowAgent Desktop client

Highlights:

  • Out of the box: the full Agent runtime is bundled — launch right after install, no need to set up Python or other dependencies
  • Full chat experience: streaming replies, session management, tool-call step display, Markdown rendering, plus sending and previewing images / videos / files
  • Visual management: configuration, models, knowledge base, scheduled tasks, skills, and memory pages mirror the Web console, all manageable in the native UI
  • Channel onboarding: connect messaging channels by scanning a QR code right inside the app
  • Auto update: automatic version checks and one-click updates, with download speed optimized across regions
  • Native experience: first-run onboarding, follows the system language, and platform-adaptive window interactions

📚 Knowledge Base

  • Create & import documents: create new documents or import external ones directly from the UI
  • Automatic index maintenance: the knowledge base index is rebuilt automatically from the actual directory tree, preventing index drift or lost documents
  • Vectorization fix: the index now reuses the unified embedding provider, ensuring real semantic vectors instead of falling back to keyword search

Thanks @yangziyu-hhh

Docs: Knowledge Base

🔌 On-demand MCP Tool Retrieval

To address context bloat when many MCP tools are connected, we added on-demand tool retrieval: relevant MCP tools are loaded on demand via RAG vector search based on the current task, reducing the context taken up by irrelevant tools.

Thanks @fengyl07

Docs: MCP Tools

🌏 Traditional Chinese Support

The Web console, logs, and documentation now support Traditional Chinese (zh-Hant); the interface language can follow the system or be switched manually.

Thanks @anomixer (#2935)

🤖 New Models

  • Added support for claude-sonnet-5 and claude-fable-5
  • Added support for doubao-seed-2-1-pro and doubao-seed-2-1-turbo

Docs: Models

🔒 Security Hardening

  • Sensitive file read protection: hardened access to credential and other sensitive files to prevent bypass reads. Thanks @fengyl07 (#2936)
  • Browser access protection: blocks browser requests targeting internal network and cloud server internal endpoints, reducing the risk of being tricked into reaching internal services. Thanks @Jiangrong-W
  • Safer config parsing: config content is parsed in a safer way to avoid potential code execution risks. Thanks @shunfeng8421

🛠 Improvements & Fixes

  • Custom provider support: embedding and vision models can now use custom providers; also fixed a memory query issue on Windows. Thanks @HnBigVolibear
  • More reliable file editing: better preserves original indentation, and fuzzy matching no longer touches unrelated content. Thanks @weijun-xia (#2942)
  • Command output encoding fix: fixed garbled Chinese characters when a command produces large output. Thanks @weijun-xia (#2941)
  • Azure OpenAI fixes: fixed streaming output and related configuration issues for Azure OpenAI. Thanks @Tunnello
  • WeCom Smart Bot: added channel docs for the webhook (callback) mode. Thanks @6vision
  • Deep Dream toggle: added a dedicated deep_dream_enabled switch to enable or disable Deep Dream distillation independently.
  • Stability: improved connection recycling in the Web service and fixed several Self-Evolution issues (#2924 Thanks @santipongth, #2904 Thanks @YLChen-007)

📦 How to Upgrade

  • Desktop client: get the latest version from the download page.
  • Source deployment: run cow update for a one-click upgrade, or pull the latest code and restart. See the upgrade guide.

Release date: 2026.07.08 | Full Changelog

2.1.2

Choose a tag to compare

@zhayujie zhayujie released this 18 Jun 07:37

🌐 English | 中文

💬 Web Console Improvements

This release adds several visual management capabilities to the Web Console, so more configuration can be done in the UI without editing files:

  • Scheduled task management: View, edit, enable/disable, and delete any scheduled task directly in the console. The task list is sorted by enabled status first, then by next run time. Thanks @HnBigVolibear (#2892)
  • Knowledge base categories and document management: The knowledge base can now be organized by category, with documents under each category managed in the UI. Thanks @yangziyu-hhh (#2893)
  • Multiple custom model providers: Configure multiple OpenAI-compatible providers and switch the active one with a single click, fully compatible with existing configuration. Thanks @kirs-hi (#2877)
  • Session renaming: Rename sessions manually to tell parallel tasks apart (#2897)
  • Bash streaming output: Long-running Bash commands now stream their progress in real time. Thanks @yangziyu-hhh (#2879)

🧬 Self-Evolution Improvements

Building on the Self-Evolution introduced in the previous release, this version refines it further:

  • Lower trigger thresholds: The default review thresholds are lowered, so everyday collaboration turns into improvements sooner
  • No concurrent reviews: When a single turn runs long, the idle review no longer fires by mistake, avoiding interference with the active conversation
  • Better review summary: Refined the summary prompt to keep summaries concise, raise their information density, and output them in the conversation language

Documentation: Self-Evolution

🤖 New Models

  • kimi-k2.7-code: Added and set as the default Kimi model, with kimi-k2.7-code-highspeed also available
  • glm-5.2: Added and set as the default GLM model

Documentation: Models Overview

🏢 WeCom Smart-Bot Callback Mode

The WeCom smart-bot channel adds an HTTP callback mode alongside the existing long connection, so deployments that cannot keep a long connection open can still connect reliably:

  • Mode switching: Switch between websocket (long connection) and webhook (callback) via wecom_bot_mode
  • Encrypted transport: Callback mode fully supports URL verification, message decryption, and passive-reply encryption
  • Stability fixes: Fixed reply interruption, premature stream termination, and temporary image file leaks

Thanks @6vision (#2896 #2869)

Documentation: WeCom Smart Bot

🔒 Security Hardening

  • Vision tool SSRF protection: Validates the target address before resolving an image URL, blocking requests to internal, loopback, and cloud server metadata endpoints. Thanks @kirs-hi (#2886)
  • Web fetch SSRF protection: web_fetch validates the target address before fetching and re-validates every redirect hop, preventing redirects from bypassing the check to reach internal addresses. Thanks @Christop (#2900)
  • Skill install path traversal protection: Validates the path when installing a skill, preventing a malicious skill name from escaping the skills/ directory through path traversal and writing to an unauthorized location. Thanks @kirs-hi (#2886)

🛠 Improvements & Fixes

  • CLI self-restart: Added the cow self-restart command so the agent can restart its own process
  • Windows compatibility: Persist the cow CLI directory to the user PATH; fixed python -c long commands exceeding the cmd.exe length limit; avoid building greenlet from source during install
  • Custom roles: The role plugin supports customization via standalone prompt files under roles/*.json. Thanks @sufan721 (#2891)
  • Stability fixes: Fixed a KeyError on /cancel and an infinite loop in image compression (Thanks @kirs-hi #2888)
  • Install improvements: Updated the startup script and default config; fixed ASR/TTS defaults, the self-evolution flag, and install hangs
  • Vision tool stability: Increased the vision tool timeout and max_tokens
  • Memory distillation: Removed the output length cap in deep-dream distillation to avoid truncating a large MEMORY.md

📦 Upgrade

Source-code deployments can run cow update for a one-click upgrade, or pull the latest code and restart manually. See the Upgrade Guide for details.

Release Date: 2026.06.18 | Full Changelog

2.1.1

Choose a tag to compare

@zhayujie zhayujie released this 09 Jun 06:45

🌐 English | 中文

🧬 Self-Evolution

CowAgent introduces Self-Evolution, letting the agent go beyond completing a single task and keep improving through everyday collaboration with you:

  • Automatic review after idle: Once a conversation goes idle, the agent reviews it in the background to fix problems a skill exposed in use, create reusable new skills, follow up on unfinished tasks, and record important information into memory and the knowledge base
  • Silent by default, notify on demand: It reports what it changed only when it actually made a change, and stays silent otherwise
  • Safe and reversible: Every review is backed up beforehand and can be undone at any time. Built-in skills are protected, and all reads and writes stay within the workspace

Enabled by default for new installs. Existing users can turn it on with a single click in the Web Console under Settings → Agent Config.

Self-Evolution conversation example

Documentation: Self-Evolution

💬 Web Console Upgrades

The Web Console chat experience gets several enhancements:

  • Message management: Edit, delete, and regenerate both user and bot messages; code blocks now include language labels and a one-click copy button
  • Parallel sessions: Run multiple sessions at the same time without interference, with live streaming automatically resumed when you switch back to a session
  • Refinements: Drag and drop files anywhere in the chat view; automatically switch to a sibling session after deleting the active one

Thanks @core-power (#2865)

🧩 Cross-platform MCP Enhancements

  • Windows compatibility fix: Fixed stdio communication failing on Windows, and made the server timeout configurable via mcp.json
  • Concurrent calls: The sse and streamable-http transports now support concurrent calls across sessions for faster multi-tool responses

Thanks @xliu123321 (#2859)

Documentation: MCP Tools

🤖 New Models & Improvements

  • MiniMax-M3: Added and set as the default model, with the M2.7 series kept as an option. Thanks @octo-patch (#2855)
  • Qwen3.7-plus: Added support for multi-modal conversations
  • Selectable ASR model: The Web Console can now select and persist the ASR (speech recognition) model. Thanks @nightwhite (#2857)
  • Simplified install menu: The one-line install script streamlines the model menu and adds the Xiaomi MiMo option

Documentation: Models Overview

🛠 Improvements & Fixes

  • Python 3.13 support: Fixed installation and dependency compatibility on Python 3.13
  • Internationalization: The channel list is now ordered by the interface language; refined the automatic language fallback under auto mode
  • More reliable cancellation: Fixed cases where a streaming reply could not be interrupted
  • CLI: cow status now shows the current project path
  • Hardened deployment security: The credential-file block is narrowed to ~/.cow/.env so other directories are no longer affected (Thanks @orbisai0security #2863); the WeChat Official Account now rejects webhook requests when wechatmp_token is empty
  • Group task board plugin: Added the group task board plugin source. Thanks @Wyh-max-star (#2853)

📦 Upgrade

Source-code deployments can run cow update for a one-click upgrade, or pull the latest code and restart manually. See the Upgrade Guide for details.

Release Date: 2026.06.09 | Full Changelog