> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cowagent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# v2.2.0

> CowAgent 2.2.0：新增能力中心，优化多 Agent 协作，Web 控制台重构，模型缓存命中率提升，全面加强稳定性与安全

🌐 [English](https://docs.cowagent.ai/releases/v2.2.0) | [中文](https://docs.cowagent.ai/zh/releases/v2.2.0)

## 🧩 能力中心

原「技能」菜单升级为「能力」，在 Web 控制台和桌面客户端中统一管理内置工具、MCP 工具与技能：

* **技能安装**：支持从 Cow Skill Hub、GitHub、ClawHub 安装，或上传压缩包、`SKILL.md`、文件夹；技能会先预览内容，确认后才正式安装。
* **MCP 配置**：支持在界面中新增、编辑、删除 MCP 服务，覆盖 stdio、SSE、Streamable HTTP 三种传输方式。提供表单与 JSON 两种编辑模式，可直接粘贴一个或多个 `mcpServers` 配置；保存时自动检测连接并展示工具列表，修改在下一条消息生效，无需重启。Thanks @tsumon (#3155)
* **工具检索诊断**：对话中可查看 MCP 工具检索的排序结果与回退原因，便于排查工具未被选中的问题。Thanks @zhongjunqi7657 (#3165)

<Frame>
  <img src="https://cdn.link-ai.tech/doc/5b73e7d71fbe31e3a88c8d130f4e605b.png" alt="能力中心" width="800" />
</Frame>

相关文档：[MCP 工具](https://docs.cowagent.ai/zh/tools/mcp)、[安装技能](https://docs.cowagent.ai/zh/skills/install)

## 🤝 多 Agent 协作优化

* **任务协同独立展示**：Agent 将任务委派给团队成员后，成员的回复以其自身名称和头像作为独立消息流式展示，Web 端和桌面客户端均已支持。
* **团队会话管理**：清除上下文时同步清除团队会话中所有参与者的上下文；群聊在发送首条消息前即可在会话列表中显示成员；`@` 选择器支持选择会话所属的 Agent。
* **数据隔离**：技能、上传文件预览、网站目录等按 Agent 独立划分。
* **问题修复**：
  * 修复 Agent 代替团队成员作答、刷新后丢失 Agent 自身工具调用记录的问题。
  * 修复已删除的 Agent 残留在成员列表中，导致单聊会话无法使用工具的问题（Thanks @Frank-zhu0404 #3234）。
  * 修复构建团队成员与清理通道团队时未正确解析默认 Agent 的问题（Thanks @c020627 #3205）。
  * 修复部分接口仅从请求体读取参数时未正确定位 Agent 的问题（Thanks @c020627 #3177）。

<Frame>
  <img src="https://cdn.link-ai.tech/doc/b97b586ca9cd008286f321526b48476f.png" alt="任务协同独立展示" width="800" />
</Frame>

## 🖥 控制台升级

* **前后端重构**：Web 控制台的前端页面与后端接口控制器按功能模块拆分，解决原先单个代码文件过长、难以维护的问题；前端资源按模块加载并启用缓存，刷新页面不再重复下载全部资源。各页面使用独立地址（如 `/agents`、`/settings`、`/scheduler`），支持浏览器前进后退与刷新后停留在当前页面，原 `/chat` 地址自动跳转。Thanks @zkjqd (#3167, #3172)
* **消息导航**：可快速跳转到会话中之前的提问。Web 端通过顶部按钮打开问题列表，桌面客户端在右侧提供导航条。
* **一键更新**：侧边栏版本菜单支持检查并一键更新源码，更新前自动备份用户数据，更新失败不影响正在运行的服务。Thanks @tsumon (#3154)
* **回复状态展示**：已停止、已中断、仍在进行中的回复会显示对应状态；服务重启导致回复中断时给出明确提示，刷新页面后可继续跟随正在生成的回复。

## 🧠 记忆与知识库

* **检索重排**：记忆检索支持可选的重排（Rerank）模型，对召回结果进行精排以提升准确度。默认关闭，可通过 `rerank_provider` 开启。Thanks @SummerCaptain (#3230)
* **混合检索评分**：向量与关键词混合检索改为按排名归一化融合，修复单路无命中时稀释得分、两路分值尺度不一致的问题。Thanks @SummerCaptain (#3164)
* **知识库索引**：删除或移动文档时同步更新 `index.md`（Thanks @alanyz106 #3237）；知识库索引较大时仅注入标题列表，避免占用过多对话上下文。
* **共享知识库**：修复共享知识库路径位于 Agent 工作空间之外时的读取与同步问题（Thanks @lorenzozanee #3182、@Jeremy-xuan #3183）；通过工具或控制台修改知识库后自动标记索引待更新（Thanks @NBSW002 #3184、@c020627 #3206）。
* **长期记忆**：`MEMORY.md` 超出长度上限时优先保留最新条目（Thanks @SEVEN-us #3244）。
* **文档分块**：修复较长 Markdown 文档中首个标题之前的内容未被索引、标题跳级时内容被重复索引的问题，`/memory status` 会提示重建索引（Thanks @Bdysj #3309）。
* **会话加载**：打开会话时不再触发记忆库扫描和索引重建，新会话的首次对话响应更快。

相关文档：[记忆](https://docs.cowagent.ai/zh/memory/index)

## 📐 上下文与 Token 成本

* **模型缓存命中提升**：系统提示词中仅保留当前日期，精确时间改由新增的 `time` 工具获取，使系统提示词在一天内保持稳定，大幅提高模型缓存命中率、降低 Token 消耗。Thanks @a1094174619 (#3250)
* **上下文裁剪**：轮数裁剪与 Token 预算裁剪合并为一次按预算的处理，未超出预算时不再触发摘要调用，减少不必要的模型请求；裁剪时始终保留上一轮对话。Thanks @liuns-yang (#3188)、@Frank-zhu0404 (#3199)、@lorenzozanee (#3185)
* **追加消息**：模型流式输出过程中也能及时处理用户追加的消息（Thanks @tsumon #3190）。

## 🤖 模型能力

* **新增模型**：接入 `gpt-6.1-sol`、`gpt-6-luna`、`gpt-6-sol`，其中 `gpt-6.1-sol` 作为 OpenAI 的默认推荐模型（工具调用走 Responses 接口）；接入 `claude-opus-5-5`，作为 Claude 的默认推荐模型。
* **上下文窗口**：Claude 5 系列（`claude-opus-5-5`、`claude-opus-5`、`claude-sonnet-5`、`claude-fable-5` 等）按 1M 上下文、128K 最大输出计算，此前统一按 200K 处理；Claude 4 及更早版本保持不变。
* **OpenAI Responses API**：新增 `open_ai_api_type` 配置，设为 `responses` 时通过 Responses API 调用，适配不再提供 `/chat/completions` 的接口；默认值 `auto` 保持原有行为。
* **MiniMax**：视觉识别改为使用 M3 原生多模态能力（Thanks @octo-patch #3160）。
* **Qwen**：`qwen3.8-max` 与 `qwen3.8-flash` 按混合思考模型处理；修复 DashScope 会话未使用角色插件设定的系统提示词的问题（Thanks @Bdysj #3310）。
* **语音识别**：使用配置的 ASR 模型，不再固定为 `whisper-1`。
* **AnySearch**：支持配置搜索区域与语言，并加强返回结果校验（Thanks @WangPan59 #3153, #3163）。

## 📡 通道能力

* **钉钉**：
  * 开启 `dingtalk_card_enabled` 后支持 AI 卡片流式回复（Thanks @tsumon #3162）；未开启卡片或卡片发送失败时以 Markdown 格式回复。
  * 支持接收文件附件（Thanks @tsumon #3161）。
  * 修复错误和提示类回复被丢弃、白名单外群消息导致异常、不含图片的富文本消息无响应的问题（Thanks @Lesereingrape #3282, #3284, #3293）。
* **QQ**：
  * 语音消息直接使用官方转写文本并立即交由 Agent 处理（Thanks @HnBigVolibear #3195）。
  * 支持接收文件、渲染 Markdown 回复，发送文档时保留原文件名（Thanks @c020627 #3209）。
  * 群聊会话与其他通道保持一致，由 `group_shared_session` 控制：默认每个成员独立会话，此前版本为全群共享一个会话。如需保持原有行为，可设置 `"group_shared_session": true`（Thanks @c020627 #3209）。
* **飞书**：群聊中仅 @ 其他成员的消息不再响应，富文本群消息按 @ 列表判断（Thanks @c020627 #3173）；图片与文件回复改为直接从内存上传（Thanks @c020627 #3226）；Webhook 回调增加 token 校验。
* **企业微信**：企微应用支持文件和视频回复（Thanks @c020627 #3249），支持回复本地生成的图片（Thanks @Lesereingrape #3312），回调接口校验企业 ID（Thanks @c020627 #3159）；企微智能机器人群消息正确识别为 @ 消息（Thanks @c020627 #3193）。
* **微信客服**：支持发送本地媒体文件，文件回复同时发送附带文字（Thanks @c020627 #3262）；修复消息拉取游标未及时推进的问题（Thanks @rudycelekli #3258）。
* **微信**：修复多 Agent 场景下多个通道实例的管理问题，通道实例变更后保留登录状态。
* **视频回复**：Discord、Slack、Telegram、飞书、钉钉、微信客服、微信公众号在回复本地生成的视频时直接上传发送，不再丢弃或只发送文件路径（Thanks @Lesereingrape #3289, #3299, #3321、@c020627 #3297）。
* **Slack / Telegram**：Telegram 正确渲染 `~~~` 代码块（Thanks @huiq777 #3287）；Slack 同名文件不再互相覆盖（Thanks @rudycelekli #3265）。
* **微信公众号**：兼容 Python 3.13（Thanks @c020627 #3214）。

## 🛡 稳定性与安全

本版本加强了任务执行的可靠性，并对外部资源访问和本地文件写入做了系统性加固：

* **执行过程持久化**：Agent 每一步的模型回复、工具调用及结果完成后立即写入会话数据库，不再等整轮结束后一次性保存；服务重启或进程异常退出后，被打断的轮次连同已完成的步骤一起恢复，下一条消息可在此基础上继续执行。Thanks @liuns-yang (#3191)
* **下载限制**：通道收发媒体、终端图片、视觉识别、关键词文件等外部下载统一限制文件大小和总耗时，避免超大文件或慢速连接拖垮服务；视觉识别下载图片时对每次重定向重新校验地址。Thanks @rudycelekli (#3255, #3256, #3257, #3264, #3266, #3267, #3268, #3269, #3270, #3271, #3272)、@c020627 (#3219, #3225, #3252, #3300, #3322)
* **请求超时**：模型、语音、翻译等外部请求全部设置超时，上游无响应时不再卡住对话。Thanks @c020627 (#3217, #3220, #3240, #3254, #3275)
* **配置安全写入**：`config.json`、插件配置、模型列表、定时任务、技能配置、凭证文件、`MEMORY.md` 等改为原子写入，写入中途失败不会损坏原文件；定时任务文件损坏时自动从备份恢复。Thanks @c020627 (#3223, #3239, #3241, #3242, #3259, #3273, #3274, #3276, #3279, #3280, #3281)、@rudycelekli (#3260)
* **临时文件管理**：通道接收的文件名限制在临时目录内并限制长度（Thanks @Lesereingrape #3247, #3248、@c020627 #3212, #3301）；下载的媒体、回复附件和语音合成文件统一存放在对应 Agent 的临时目录（Thanks @c020627 #3198, #3207, #3208, #3213）；技能压缩包解压失败时清理临时目录（Thanks @Lesereingrape #3325）。
* **日志脱敏**：通道凭证在调试日志中脱敏显示（Thanks @fuxicodex #3228）。

## 🛠 其他优化与修复

* **语音**：
  * 支持 silk 与大写扩展名 amr 语音的转换（Thanks @c020627 #3152）。
  * 阿里云、Edge、ElevenLabs 等语音服务失败时返回错误提示，不再静默丢弃回复（Thanks @c020627 #3243, #3263, #3278）。
  * 修复 WAV 文件句柄未关闭的问题（Thanks @aniruddhaadak80 #3286）。
  * Google 语音识别遇到异常时返回错误提示，不再掩盖原始错误（Thanks @aniruddhaadak80 #3326）。
* **定时任务**：跨夏令时切换时保持本地执行时间（Thanks @liuns-yang #3189, #3204）；定时执行技能产出的文件直接投递，而非发送文件路径（Thanks @c020627 #3253）。
* **备份**：支持将备份输出到不同的文件系统（Thanks @zyc2022 #3200、@chen1070109514 #3246）；恢复多 Agent 备份时沿用本机现有的 Agent 工作区路径（Thanks @Lesereingrape #3319）。
* **插件**：配置为空或不完整时插件仍可正常启动（Thanks @c020627 #3224）；Midjourney 图片序号输入有误时给出提示（Thanks @Lesereingrape #3291）；角色插件自定义角色未填写描述时返回帮助信息（Thanks @Lesereingrape #3296）；管理员命令设置插件优先级、切换模型时参数有误会给出提示（Thanks @Lesereingrape #3303, #3305）；`plugins.json` 中单个插件配置项缺失或格式错误时自动补全默认值，不再导致全部插件加载失败（Thanks @Lesereingrape #3314）；修复总结插件的文件命名与句柄关闭问题（Thanks @c020627 #3215）。
* **Agent 管理**：删除 Agent 时同步清理其项目数据（Thanks @c020627 #3216）。
* **Agent Mail**：Docker Compose 新增可选的 Agent Mail 配置，启用后 Agent 可收发、搜索和管理邮件，详见 [Agent Mail](https://docs.cowagent.ai/zh/extensions/agent-mail)（Thanks @tsumon #3236）。
* **消息处理**：修复消息上下文参数在不同会话间共享的问题（Thanks @c020627 #3222）；文件缓存有效期按最近一个文件计算（Thanks @c020627 #3218）；修复限流器阻塞程序退出、速率为 0 时异常的问题（Thanks @aniruddhaadak80 #3285）；不支持的回复类型会在错误提示中显示原始类型，插件丢弃回复后语音会话不再报错（Thanks @Bdysj #3306, #3307）；修复非默认 Agent 下 `#reset`、飞书消息撤回和删除会话无法清除排队消息的问题（Thanks @Lesereingrape #3316）。
* **浏览器工具**：浏览器驱动连接断开后可自动恢复，不再持续报错。
* **桌面客户端**：修复 macOS 无法弹出麦克风权限请求的问题（Thanks @cowagent #3181）；修复 Windows 快捷方式导致启动崩溃、后端日志重复写入的问题。
* **工程质量**：新增完整测试流程与代码检查门禁（Thanks @fuxicodex #3166, #3203）；完善测试隔离（Thanks @c020627 #3169, #3201、@rudycelekli #3261）。
* **文档**：
  * 补充静态 Bearer 认证的 MCP 配置说明（Thanks @ct-jaryn #3227）
  * 修复 README 中的失效链接与日志文案错误（Thanks @yetuge #3194, #3196, #3197）

## 📦 升级方式

* **源码部署**：执行 `cow update` 一键升级，或在 Web 控制台侧边栏版本菜单中一键更新，也可手动拉取代码后重启。详见 [更新升级文档](https://docs.cowagent.ai/zh/guide/upgrade)。
* **桌面客户端**：可在客户端内自动检查并一键更新，或前往 [下载页](https://cowagent.ai/zh/download/) 获取最新版本。

**发布日期**：2026.09.30 | [Full Changelog](https://github.com/zhayujie/CowAgent/compare/2.1.9...2.2.0)
