diff --git a/channel/web/static/js/console.js b/channel/web/static/js/console.js
index 09289dcb..4e2d99e5 100644
--- a/channel/web/static/js/console.js
+++ b/channel/web/static/js/console.js
@@ -58,7 +58,7 @@ const I18N = {
models_search_add_provider: '添加厂商',
models_search_add_desc: '选择一个搜索厂商进行配置',
models_search_bocha_title: '配置博查 API Key',
- models_search_bocha_desc: '前往 博查开放平台 创建 API Key。',
+ models_search_bocha_desc: '前往博查开放平台创建 API Key',
models_search_edit_hint: '点击修改配置',
models_unavailable: '不可用',
models_set_via_env: '通过环境变量启用',
@@ -232,7 +232,7 @@ const I18N = {
models_search_add_provider: 'Add provider',
models_search_add_desc: 'Pick a search provider to configure',
models_search_bocha_title: 'Configure Bocha API Key',
- models_search_bocha_desc: 'Create a key at the Bocha open platform.',
+ models_search_bocha_desc: 'Create a key at the Bocha open platform.',
models_search_edit_hint: 'Click to edit',
models_unavailable: 'unavailable',
models_set_via_env: 'enable via environment variable',
diff --git a/channel/web/web_channel.py b/channel/web/web_channel.py
index 4adcefc7..bf217f16 100644
--- a/channel/web/web_channel.py
+++ b/channel/web/web_channel.py
@@ -1840,7 +1840,12 @@ class ModelsHandler:
"doubao": ["seedream-5.0-lite", "seedream-4.5"],
"dashscope": ["qwen-image-2.0-pro", "qwen-image-2.0"],
"minimax": ["image-01"],
- "linkai": ["gpt-image-2", "gemini-3-pro-image-preview", "seedream-5.0-lite"],
+ "linkai": [
+ "gpt-image-2",
+ {"value": "gemini-3.1-flash-image-preview", "hint": "Nano Banana 2"},
+ {"value": "gemini-3-pro-image-preview", "hint": "Nano Banana Pro"},
+ "seedream-5.0-lite",
+ ],
}
@staticmethod
diff --git a/cli/VERSION b/cli/VERSION
index 815e68dd..09843e3b 100644
--- a/cli/VERSION
+++ b/cli/VERSION
@@ -1 +1 @@
-2.0.8
+2.0.9
diff --git a/docs/channels/index.mdx b/docs/channels/index.mdx
new file mode 100644
index 00000000..9049a51d
--- /dev/null
+++ b/docs/channels/index.mdx
@@ -0,0 +1,39 @@
+---
+title: 通道概览
+description: CowAgent 支持的通道及能力矩阵
+---
+
+CowAgent 支持接入多种聊天通道,启动时通过 `channel_type` 切换。Web 控制台默认开启,可与其他接入通道并行运行。
+
+## 能力矩阵
+
+下表汇总各通道支持的入站消息类型、机器人回复类型与群聊能力,方便按场景选择。
+
+| 通道 | 文本 | 图片 | 文件 | 语音 | 群聊 |
+| --- | :-: | :-: | :-: | :-: | :-: |
+| [微信](/channels/weixin) | ✅ | ✅ | ✅ | ✅ | |
+| [Web 控制台](/channels/web) | ✅ | ✅ | ✅ | ✅ | |
+| [飞书](/channels/feishu) | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [钉钉](/channels/dingtalk) | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [企微智能机器人](/channels/wecom-bot) | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [QQ](/channels/qq) | ✅ | ✅ | ✅ | | ✅ |
+| [企业微信应用](/channels/wecom) | ✅ | ✅ | ✅ | ✅ | |
+| [公众号](/channels/wechatmp) | ✅ | ✅ | | ✅ | |
+
+- **图片 / 文件 / 语音**列表示通道支持收发对应消息类型,具体细节详见各通道文档
+- **群聊**列指可识别并响应群消息
+
+
+ 每个通道的语音 / 图像能力依赖对应模型厂商的配置,详见 [模型概览](/models)。
+
+
+## 通道一览
+
+- [Web 控制台](/channels/web) — 内置浏览器对话和管理面板,默认开启
+- [微信](/channels/weixin) — 通过个人微信扫码登录
+- [飞书](/channels/feishu) — 飞书自建机器人
+- [钉钉](/channels/dingtalk) — 钉钉自建机器人
+- [企微智能机器人](/channels/wecom-bot) — 企业微信智能机器人
+- [QQ](/channels/qq) — QQ 官方机器人开放平台
+- [企业微信应用](/channels/wecom) — 企业微信自建应用接入
+- [公众号](/channels/wechatmp) — 微信公众号(订阅号 / 服务号)
diff --git a/docs/channels/web.mdx b/docs/channels/web.mdx
index 29d9ed97..30bea09b 100644
--- a/docs/channels/web.mdx
+++ b/docs/channels/web.mdx
@@ -59,9 +59,9 @@ Web 控制台是 CowAgent 的默认通道,启动后会自动运行,通过浏
### 模型管理
-支持在线管理模型配置,无需手动编辑配置文件:
+支持在线管理不同模型厂商的文本、图像、语音、向量模型配置,无需手动编辑配置文件:
-
+
### 技能管理
diff --git a/docs/docs.json b/docs/docs.json
index 3eebadb0..bacc9566 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -181,6 +181,7 @@
{
"group": "接入渠道",
"pages": [
+ "channels/index",
"channels/weixin",
"channels/web",
"channels/feishu",
diff --git a/docs/models/claude.mdx b/docs/models/claude.mdx
index 920f54cd..05b6164c 100644
--- a/docs/models/claude.mdx
+++ b/docs/models/claude.mdx
@@ -1,8 +1,16 @@
---
title: Claude
-description: Claude 模型配置
+description: Anthropic Claude 模型配置(文本对话 + 图像理解)
---
+Claude 由 Anthropic 提供,支持文本对话与图像理解,主流 Sonnet / Opus 模型均原生支持视觉,无需额外指定 Vision 模型。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
"model": "claude-sonnet-4-6",
@@ -14,4 +22,28 @@ description: Claude 模型配置
| --- | --- |
| `model` | 支持 `claude-sonnet-4-6`、`claude-opus-4-7`、`claude-opus-4-6`、`claude-sonnet-4-5`、`claude-sonnet-4-0`、`claude-3-5-sonnet-latest` 等,参考 [官方模型](https://docs.anthropic.com/en/docs/about-claude/models/overview) |
| `claude_api_key` | 在 [Claude 控制台](https://console.anthropic.com/settings/keys) 创建 |
-| `claude_api_base` | 可选,默认为 `https://api.anthropic.com/v1`,修改可接入第三方代理 |
+| `claude_api_base` | 可选,默认为 `https://api.anthropic.com/v1`,可改为第三方代理 |
+
+### 模型选择
+
+| 模型 | 适用场景 |
+| --- | --- |
+| `claude-sonnet-4-6` | 默认推荐,性价比与速度平衡 |
+| `claude-opus-4-7` | 复杂推理与长链路任务,效果最佳但成本更高 |
+| `claude-sonnet-4-5` / `claude-sonnet-4-0` | 上一代旗舰,价格更低 |
+
+## 图像理解
+
+配置 `claude_api_key` 后 Agent 的 Vision 工具会自动使用 Claude 主模型识别图像,无需额外配置。
+
+如需手动指定 Vision 模型,可在配置文件中显式配置:
+
+```json
+{
+ "tools": {
+ "vision": {
+ "model": "claude-sonnet-4-6"
+ }
+ }
+}
+```
diff --git a/docs/models/custom.mdx b/docs/models/custom.mdx
index 907dbac3..2673a8de 100644
--- a/docs/models/custom.mdx
+++ b/docs/models/custom.mdx
@@ -13,7 +13,7 @@ description: 自定义厂商配置,适用于第三方 API 代理和本地模
与 `openai` 厂商的区别:选择自定义厂商后,通过 `/config model` 切换模型时,不会自动切换厂商类型,始终使用自定义的 API 地址。
-## 配置方式
+## 文本对话
### 第三方 API 代理
@@ -35,7 +35,7 @@ description: 自定义厂商配置,适用于第三方 API 代理和本地模
### 本地模型
-本地模型通常不需要 API Key,只需填写 API Base 即可:
+本地模型通常不需要 API Key,只需填写 API Base:
```json
{
@@ -53,7 +53,7 @@ description: 自定义厂商配置,适用于第三方 API 代理和本地模
| [vLLM](https://docs.vllm.ai) | `http://localhost:8000/v1` |
| [LocalAI](https://localai.io) | `http://localhost:8080/v1` |
-## 切换模型
+### 切换模型
自定义厂商下切换模型时,只会修改 `model`,不会改变 `bot_type` 和 API 地址:
diff --git a/docs/models/deepseek.mdx b/docs/models/deepseek.mdx
index a522ce98..57b96d55 100644
--- a/docs/models/deepseek.mdx
+++ b/docs/models/deepseek.mdx
@@ -1,9 +1,11 @@
---
title: DeepSeek
-description: DeepSeek 模型配置
+description: DeepSeek 模型配置(文本对话 + 思考模式)
---
-方式一:官方接入(推荐):
+DeepSeek 是当前 Agent 模式默认推荐的厂商之一,主打高性价比的文本对话和任务规划能力。
+
+## 文本对话
```json
{
@@ -18,20 +20,20 @@ description: DeepSeek 模型配置
| `deepseek_api_key` | 在 [DeepSeek 平台](https://platform.deepseek.com/api_keys) 创建 |
| `deepseek_api_base` | 可选,默认为 `https://api.deepseek.com/v1`,可修改为第三方代理地址 |
-## 模型选择
+### 模型选择
| 模型 | 适用场景 |
| --- | --- |
| `deepseek-v4-flash` | 默认推荐,速度快、成本低 |
-| `deepseek-v4-pro` | 更智能、复杂任务效果更强 |
+| `deepseek-v4-pro` | 更智能,复杂任务效果更强 |
## 思考模式
-V4 系列(`deepseek-v4-flash` / `deepseek-v4-pro`)支持显式的"思考模式":模型在输出最终回答前,先输出一段思维链(`reasoning_content`),从而提升答案质量。
+V4 系列(`deepseek-v4-flash` / `deepseek-v4-pro`)支持显式的「思考模式」:模型在输出最终回答前,先输出一段思维链(`reasoning_content`),从而提升答案质量。
### 开关
-通过全局配置 `enable_thinking` 控制:
+通过全局配置 `enable_thinking` 控制,也可在 web控制台 - 配置页面中进行切换:
```json
{
@@ -66,16 +68,5 @@ V4 系列(`deepseek-v4-flash` / `deepseek-v4-pro`)支持显式的"思考模
- **多轮工具调用**:当历史中包含工具调用时,DeepSeek 要求所有 assistant 消息必须回传 `reasoning_content`。CowAgent 会自动处理回传逻辑,跨轮次切换思考开关也不会出错。
- 默认使用 `deepseek-v4-flash`;复杂任务可使用 `deepseek-v4-pro`;需要深度思考可开启 `enable_thinking`。
+ 默认使用 `deepseek-v4-flash`;复杂任务可使用 `deepseek-v4-pro`;需要深度推理可开启 `enable_thinking`。
-
-方式二:OpenAI 兼容方式接入:
-
-```json
-{
- "model": "deepseek-v4-flash",
- "bot_type": "openai",
- "open_ai_api_key": "YOUR_API_KEY",
- "open_ai_api_base": "https://api.deepseek.com/v1"
-}
-```
diff --git a/docs/models/doubao.mdx b/docs/models/doubao.mdx
index e7440434..cfdc5670 100644
--- a/docs/models/doubao.mdx
+++ b/docs/models/doubao.mdx
@@ -1,17 +1,66 @@
---
title: 豆包 Doubao
-description: 豆包 (火山方舟) 模型配置
+description: 豆包(火山方舟)模型配置(文本 / 图像理解 / 图像生成 / 向量)
---
+豆包(火山方舟)支持文本对话、图像理解、图像生成(Seedream)和向量能力,一份 `ark_api_key` 即可启用全部能力。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
- "model": "doubao-seed-2-0-code-preview-260215",
+ "model": "doubao-seed-2-0-pro-260215",
"ark_api_key": "YOUR_API_KEY"
}
```
| 参数 | 说明 |
| --- | --- |
-| `model` | 可填 `doubao-seed-2-0-code-preview-260215`、`doubao-seed-2-0-pro-260215`、`doubao-seed-2-0-lite-260215` 等 |
+| `model` | 可填 `doubao-seed-2-0-pro-260215`、`doubao-seed-2-0-code-preview-260215`、`doubao-seed-2-0-lite-260215` 等 |
| `ark_api_key` | 在 [火山方舟控制台](https://console.volcengine.com/ark/region:ark+cn-beijing/apikey) 创建 |
| `ark_base_url` | 可选,默认为 `https://ark.cn-beijing.volces.com/api/v3` |
+
+## 图像理解
+
+配置 `ark_api_key` 后 Agent 的 Vision 工具会自动使用 `doubao-seed-2-0-pro-260215` 识别图像,无需额外配置。
+
+如需手动指定 Vision 模型:
+
+```json
+{
+ "tools": {
+ "vision": {
+ "model": "doubao-seed-2-0-pro-260215"
+ }
+ }
+}
+```
+
+## 图像生成
+
+```json
+{
+ "skills": {
+ "image-generation": {
+ "model": "seedream-5.0-lite"
+ }
+ }
+}
+```
+
+可选模型:`seedream-5.0-lite`、`seedream-4.5`。
+
+## 向量
+
+```json
+{
+ "embedding_provider": "doubao",
+ "embedding_model": "doubao-embedding-vision-251215"
+}
+```
+
+默认模型 `doubao-embedding-vision-251215`(多模态 embedding),可在配置文件中通过 `embedding_dimensions` 指定 1024 或 2048 维。修改 embedding 后需执行 `/memory rebuild-index` 命令重建索引。
diff --git a/docs/models/gemini.mdx b/docs/models/gemini.mdx
index 220e53a2..b758399b 100644
--- a/docs/models/gemini.mdx
+++ b/docs/models/gemini.mdx
@@ -1,8 +1,16 @@
---
title: Gemini
-description: Google Gemini 模型配置
+description: Google Gemini 模型配置(文本对话 + 图像理解 + 图像生成)
---
+Google Gemini 支持文本对话、图像理解和图像生成(Nano Banana 系列),一个 `gemini_api_key` 即可启用全部能力。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
"model": "gemini-3.1-pro-preview",
@@ -12,5 +20,40 @@ description: Google Gemini 模型配置
| 参数 | 说明 |
| --- | --- |
-| `model` | 支持 `gemini-3.1-flash-lite-preview`、`gemini-3.1-pro-preview`、`gemini-3-flash-preview`、`gemini-3-pro-preview` 等,参考 [官方文档](https://ai.google.dev/gemini-api/docs/models) |
+| `model` | 支持 `gemini-3.1-pro-preview`、`gemini-3.1-flash-lite-preview`、`gemini-3-flash-preview`、`gemini-3-pro-preview` 等,参考 [官方文档](https://ai.google.dev/gemini-api/docs/models) |
| `gemini_api_key` | 在 [Google AI Studio](https://aistudio.google.com/app/apikey) 创建 |
+| `gemini_api_base` | 可选,默认为 `https://generativelanguage.googleapis.com`,可改为第三方代理 |
+
+## 图像理解
+
+Gemini 全系列模型均原生支持视觉,配置 `gemini_api_key` 后 Agent 的 Vision 工具会自动使用主模型识别图像,无需额外配置。
+
+如需手动指定 Vision 模型:
+
+```json
+{
+ "tools": {
+ "vision": {
+ "model": "gemini-3.1-flash-lite-preview"
+ }
+ }
+}
+```
+
+## 图像生成
+
+```json
+{
+ "skills": {
+ "image-generation": {
+ "model": "gemini-3.1-flash-image-preview"
+ }
+ }
+}
+```
+
+| 模型 ID | 别名 |
+| --- | --- |
+| `gemini-3.1-flash-image-preview` | Nano Banana 2 |
+| `gemini-3-pro-image-preview` | Nano Banana Pro |
+| `gemini-2.5-flash-image` | Nano Banana |
diff --git a/docs/models/glm.mdx b/docs/models/glm.mdx
index f667efdf..ad5f8fd3 100644
--- a/docs/models/glm.mdx
+++ b/docs/models/glm.mdx
@@ -1,8 +1,16 @@
---
title: 智谱 GLM
-description: 智谱AI GLM 模型配置
+description: 智谱 AI GLM 模型配置(文本 / 图像理解 / 语音识别 / 向量)
---
+智谱 AI 支持文本对话、图像理解、语音识别(ASR)和向量(Embedding),一份 `zhipu_ai_api_key` 即可启用全部能力。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
"model": "glm-5.1",
@@ -13,15 +21,36 @@ description: 智谱AI GLM 模型配置
| 参数 | 说明 |
| --- | --- |
| `model` | 可填 `glm-5.1`、`glm-5-turbo`、`glm-5`、`glm-4.7`、`glm-4-plus`、`glm-4-flash`、`glm-4-air` 等,参考 [模型编码](https://bigmodel.cn/dev/api/normal-model/glm-4) |
-| `zhipu_ai_api_key` | 在 [智谱AI 控制台](https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys) 创建 |
+| `zhipu_ai_api_key` | 在 [智谱 AI 控制台](https://www.bigmodel.cn/usercenter/proj-mgmt/apikeys) 创建 |
+| `zhipu_ai_api_base` | 可选,默认为 `https://open.bigmodel.cn/api/paas/v4` |
-也支持 OpenAI 兼容方式接入:
+## 图像理解
+
+智谱 chat 系列模型(`glm-5.1`、`glm-5-turbo` 等)不支持视觉,视觉调用统一路由到 `glm-5v-turbo`。配置 `zhipu_ai_api_key` 后 Agent 的 Vision 工具会自动使用该模型,无需在配置文件中显式指定。
+
+## 语音识别
```json
{
- "bot_type": "openai",
- "model": "glm-5.1",
- "open_ai_api_base": "https://open.bigmodel.cn/api/paas/v4",
- "open_ai_api_key": "YOUR_API_KEY"
+ "voice_to_text": "zhipu",
+ "voice_to_text_model": "glm-asr-2512"
}
```
+
+| 参数 | 说明 |
+| --- | --- |
+| `voice_to_text` | 设为 `zhipu` 启用智谱 ASR |
+| `voice_to_text_model` | 可选,默认 `glm-asr-2512` |
+
+凭证自动复用 `zhipu_ai_api_key`。语音文件建议小于 25MB,超大文件可能被服务端拒绝。
+
+## 向量
+
+```json
+{
+ "embedding_provider": "zhipu",
+ "embedding_model": "embedding-3"
+}
+```
+
+可选模型:`embedding-3`、`embedding-2`。修改 embedding 后需执行 `/memory rebuild-index` 命令重建索引。
diff --git a/docs/models/index.mdx b/docs/models/index.mdx
index afe9798e..d16e6fd9 100644
--- a/docs/models/index.mdx
+++ b/docs/models/index.mdx
@@ -1,67 +1,45 @@
---
title: 模型概览
-description: CowAgent 支持的模型及推荐选择
+description: CowAgent 支持的模型厂商及能力矩阵
---
-CowAgent 支持国内外主流厂商的大语言模型,模型接口实现在项目的 `models/` 目录下。
+CowAgent 支持国内外主流厂商的大语言模型,模型接口实现在项目的 `models/` 目录下。除文本对话外,部分厂商还提供视觉理解、图像生成、语音识别、语音合成、向量等能力,可在 Agent 流程中按需调用。
- Agent 模式下推荐使用以下模型,可根据效果及成本综合选择:deepseek-v4-flash、MiniMax-M2.7、claude-sonnet-4-6、gemini-3.1-pro-preview、glm-5.1、qwen3.6-plus、kimi-k2.6、ernie-5.1
+ Agent 模式下推荐使用以下模型,可根据效果及成本综合选择:deepseek-v4-flash、MiniMax-M2.7、claude-sonnet-4-6、gemini-3.1-pro-preview、glm-5.1、qwen3.6-plus、kimi-k2.6、ernie-5.1。
- 同时支持使用 [LinkAI](https://link-ai.tech) 平台接口,可灵活切换多种模型,并支持知识库、工作流、插件等 Agent 能力。
+ 同时支持使用 [LinkAI](https://link-ai.tech) 平台接口,一个 Key 即可灵活切换多家厂商,并附带知识库、工作流、插件等能力。
+
+## 模型能力总览
+
+各厂商提供的能力一览。「文本」指主对话模型,其余列表示该厂商可承担对应 Agent 能力。
+
+| 厂商 | 代表模型 | 文本 | 图像理解 | 图像生成 | 语音识别 | 语音合成 | 向量 |
+| --- | --- | :-: | :-: | :-: | :-: | :-: | :-: |
+| [DeepSeek](/models/deepseek) | deepseek-v4-flash / pro | ✅ | | | | | |
+| [MiniMax](/models/minimax) | MiniMax-M2.7 | ✅ | ✅ | ✅ | | ✅ | |
+| [Claude](/models/claude) | claude-opus-4-7 | ✅ | ✅ | | | | |
+| [Gemini](/models/gemini) | gemini-3.5-flash | ✅ | ✅ | ✅ | | | |
+| [OpenAI](/models/openai) | gpt-5.5、o 系列 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [智谱 GLM](/models/glm) | glm-5.1、glm-5v-turbo | ✅ | ✅ | | ✅ | | ✅ |
+| [通义千问](/models/qwen) | qwen3.7-plus | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [豆包 Doubao](/models/doubao) | doubao-seed-2.0 系列 | ✅ | ✅ | ✅ | | | ✅ |
+| [Kimi](/models/kimi) | kimi-k2.6 | ✅ | ✅ | | | | |
+| [百度千帆](/models/qianfan) | ernie-5.1 | ✅ | ✅ | | | | |
+| [LinkAI](/models/linkai) | 多厂商 100+ 模型统一接入 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
+| [自定义](/models/custom) |本地模型 / 三方代理 | ✅ | | | | | |
+
+
+ Web 控制台中各项能力(视觉 / 图像 / 语音识别 / 语音合成 / 向量 / 网络搜索)均可独立配置厂商与模型,互相之间不强制绑定。
+
+
+
## 配置方式
-**方式一(推荐):** 通过 [Web 控制台](/channels/web) 在线管理模型配置,无需手动编辑配置文件:
+**方式一(推荐):** 通过 [Web 控制台](/channels/web) 在线管理模型与各项能力,无需手动编辑配置文件:
-
+
**方式二:** 手动编辑 `config.json`,根据所选模型填写对应的模型名称和 API Key。每个模型也支持 OpenAI 兼容方式接入,将 `bot_type` 设为 `openai`,配置 `open_ai_api_base` 和 `open_ai_api_key` 即可。
-
-
-## 支持的模型
-
-
-
- deepseek-v4-flash、deepseek-v4-pro 等
-
-
- ernie-5.1、ernie-5.0、ernie-4.5-turbo-128k 等
-
-
- MiniMax-M2.7 等系列模型
-
-
- claude-sonnet-4-6 等
-
-
- gemini-3.1-pro-preview 等
-
-
- gpt-5.4、gpt-4.1、o 系列等
-
-
- glm-5.1、glm-5-turbo、glm-5 等系列模型
-
-
- qwen3.6-plus、qwen3-max 等
-
-
- doubao-seed 系列模型
-
-
- kimi-k2.6、kimi-k2.5、kimi-k2 等
-
-
- 多模型统一接口 + 知识库
-
-
- 第三方代理、本地模型等
-
-
-
-
-
- 全部模型名称可参考项目 [`common/const.py`](https://github.com/zhayujie/CowAgent/blob/master/common/const.py) 文件。
-
diff --git a/docs/models/kimi.mdx b/docs/models/kimi.mdx
index a75cadea..beb5beaf 100644
--- a/docs/models/kimi.mdx
+++ b/docs/models/kimi.mdx
@@ -1,8 +1,16 @@
---
title: Kimi
-description: Kimi (Moonshot) 模型配置
+description: Kimi(Moonshot)模型配置(文本对话 + 图像理解)
---
+Kimi 由 Moonshot 提供,支持文本对话与图像理解,`kimi-k2.x` 系列原生支持视觉。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
"model": "kimi-k2.6",
@@ -14,14 +22,20 @@ description: Kimi (Moonshot) 模型配置
| --- | --- |
| `model` | 可填 `kimi-k2.6`、`kimi-k2.5`、`kimi-k2`、`moonshot-v1-8k`、`moonshot-v1-32k`、`moonshot-v1-128k` |
| `moonshot_api_key` | 在 [Moonshot 控制台](https://platform.moonshot.cn/console/api-keys) 创建 |
+| `moonshot_base_url` | 可选,默认为 `https://api.moonshot.cn/v1` |
-也支持 OpenAI 兼容方式接入:
+## 图像理解
+
+配置 `moonshot_api_key` 后 Agent 的 Vision 工具会自动使用 `kimi-k2.6` 识别图像,无需额外配置。
+
+如需手动指定 Vision 模型:
```json
{
- "bot_type": "openai",
- "model": "kimi-k2.6",
- "open_ai_api_base": "https://api.moonshot.cn/v1",
- "open_ai_api_key": "YOUR_API_KEY"
+ "tools": {
+ "vision": {
+ "model": "kimi-k2.6"
+ }
+ }
}
```
diff --git a/docs/models/linkai.mdx b/docs/models/linkai.mdx
index 776bc7c9..68647ebc 100644
--- a/docs/models/linkai.mdx
+++ b/docs/models/linkai.mdx
@@ -1,9 +1,15 @@
---
title: LinkAI
-description: 通过 LinkAI 平台统一接入多种模型
+description: 通过 LinkAI 平台统一接入文本、视觉、图像、语音与向量能力
---
-通过 [LinkAI](https://link-ai.tech) 平台可灵活切换 OpenAI、Claude、Gemini、DeepSeek、MiniMax、Qwen、Kimi 等多种模型,并支持知识库、工作流、插件等 Agent 能力。
+通过一份 `linkai_api_key` 即可访问 OpenAI、Claude、Gemini、DeepSeek、MiniMax、Qwen、Kimi、豆包 等主流厂商的全部能力。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
```json
{
@@ -14,8 +20,84 @@ description: 通过 LinkAI 平台统一接入多种模型
| 参数 | 说明 |
| --- | --- |
-| `use_linkai` | 设为 `true` 启用 LinkAI 接口 |
+| `use_linkai` | 设为 `true` 启用 |
| `linkai_api_key` | 在 [控制台](https://link-ai.tech/console/interface) 创建 |
-| `model` | 留空则使用智能体默认模型,可在平台中灵活切换,[模型列表](https://link-ai.tech/console/models) 中的全部模型均可使用 |
+| `model` | 可填写 [模型列表](https://link-ai.tech/console/models) 中任意编码 |
-参考 [接口文档](https://docs.link-ai.tech/platform/api) 了解更多。
+前往 [模型服务](https://link-ai.tech/console/models) 了解更多。
+
+## 图像理解
+
+配置完成后 Agent 的 Vision 工具会自动调用网关上的多模态模型,无需额外配置。如需手动指定 Vision 模型:
+
+```json
+{
+ "tools": {
+ "vision": {
+ "model": "gpt-5.4-mini"
+ }
+ }
+}
+```
+
+可选模型:`gpt-4.1-mini`、`gpt-5.4-mini`、`qwen3.6-plus`、`doubao-seed-2-0-pro-260215`、`kimi-k2.6`、`claude-sonnet-4-6`、`gemini-3.1-flash-lite-preview` 等。
+
+## 图像生成
+
+```json
+{
+ "skills": {
+ "image-generation": {
+ "model": "gpt-image-2"
+ }
+ }
+}
+```
+
+| 模型 ID | 别名 |
+| --- | --- |
+| `gpt-image-2` | OpenAI |
+| `gemini-3.1-flash-image-preview` | Nano Banana 2 |
+| `gemini-3-pro-image-preview` | Nano Banana Pro |
+| `seedream-5.0-lite` | 字节豆包 Seedream |
+
+## 语音识别
+
+```json
+{
+ "voice_to_text": "linkai"
+}
+```
+
+ASR 固定使用 Whisper,凭证自动复用 `linkai_api_key`。
+
+## 语音合成
+
+语音合成网关下支持多个底层 TTS 引擎,按 `text_to_voice_model` 选择引擎,音色随引擎切换。
+
+```json
+{
+ "text_to_voice": "linkai",
+ "text_to_voice_model": "doubao",
+ "tts_voice_id": "BV001_streaming"
+}
+```
+
+| `text_to_voice_model` | 引擎说明 |
+| --- | --- |
+| `tts-1` | OpenAI · 多语种通用(音色 `alloy` / `nova` / `echo` 等) |
+| `doubao` | 字节豆包 · 中文音色丰富 |
+| `baidu` | 百度 · 中文主播音色 |
+
+不同引擎对应的音色不同,建议在 Web 控制台「模型管理 → 语音合成」中可视化选择。
+
+## 向量
+
+```json
+{
+ "embedding_provider": "linkai",
+ "embedding_model": "text-embedding-3-small"
+}
+```
+
+默认模型 `text-embedding-3-small`(OpenAI 兼容)。修改 embedding 后需执行 `/memory rebuild-index` 命令重建索引。
diff --git a/docs/models/minimax.mdx b/docs/models/minimax.mdx
index 299a7064..8282f88b 100644
--- a/docs/models/minimax.mdx
+++ b/docs/models/minimax.mdx
@@ -1,8 +1,16 @@
---
title: MiniMax
-description: MiniMax 模型配置
+description: MiniMax 模型配置(文本 / 图像理解 / 图像生成 / 语音合成)
---
+MiniMax 支持文本对话、图像理解、图像生成与语音合成,一份 `minimax_api_key` 即可启用全部能力。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
"model": "MiniMax-M2.7",
@@ -12,16 +20,52 @@ description: MiniMax 模型配置
| 参数 | 说明 |
| --- | --- |
-| `model` | 可填 `MiniMax-M2.7`、`MiniMax-M2.5`、`MiniMax-M2.1`、`MiniMax-M2.1-lightning`、`MiniMax-M2` 等 |
+| `model` | 可填 `MiniMax-M2.7`、`MiniMax-M2.7-highspeed`、`MiniMax-M2.5`、`MiniMax-M2.1`、`MiniMax-M2.1-lightning`、`MiniMax-M2` 等 |
| `minimax_api_key` | 在 [MiniMax 控制台](https://platform.minimaxi.com/user-center/basic-information/interface-key) 创建 |
-也支持 OpenAI 兼容方式接入:
+## 图像理解
+
+MiniMax 的 M2.x 系列 chat 模型本身不支持视觉,视觉调用统一路由到 `MiniMax-Text-01`。配置 `minimax_api_key` 后 Agent 的 Vision 工具会自动使用该模型,无需在配置文件中显式指定。
+
+## 图像生成
```json
{
- "bot_type": "openai",
- "model": "MiniMax-M2.7",
- "open_ai_api_base": "https://api.minimaxi.com/v1",
- "open_ai_api_key": "YOUR_API_KEY"
+ "skills": {
+ "image-generation": {
+ "model": "image-01"
+ }
+ }
}
```
+
+可选模型:`image-01`。
+
+## 语音合成
+
+```json
+{
+ "text_to_voice": "minimax",
+ "text_to_voice_model": "speech-2.8-hd",
+ "tts_voice_id": "female-shaonv"
+}
+```
+
+| 参数 | 说明 |
+| --- | --- |
+| `text_to_voice_model` | `speech-2.8-hd`(情绪渲染、自然听感)、`speech-2.8-turbo`(极速)、`speech-2.6-hd`、`speech-2.6-turbo` |
+| `tts_voice_id` | 音色 ID,支持中文 / 粤语 / 英 / 日 / 韩,共 70+ 种 |
+
+常用音色示例:
+
+| 音色 ID | 说明 |
+| --- | --- |
+| `female-shaonv` | 中文 · 少女(女) |
+| `female-yujie` | 中文 · 御姐(女) |
+| `female-tianmei` | 中文 · 甜美女性(女) |
+| `male-qn-jingying` | 中文 · 精英青年(男) |
+| `male-qn-badao` | 中文 · 霸道青年(男) |
+| `Cantonese_GentleLady` | 粤语 · 温柔女声 |
+| `English_Graceful_Lady` | 英文 · Graceful Lady |
+
+完整音色(中文 / 粤语 / 英 / 日 / 韩共 70+ 种)可参考 [系统音色列表](https://platform.minimaxi.com/docs/faq/system-voice-id),也可在 Web 控制台的「模型管理 → 语音合成」下拉框中可视化选择。
diff --git a/docs/models/openai.mdx b/docs/models/openai.mdx
index c3406aca..59977b09 100644
--- a/docs/models/openai.mdx
+++ b/docs/models/openai.mdx
@@ -1,8 +1,17 @@
---
title: OpenAI
-description: OpenAI 模型配置
+description: OpenAI 模型配置(文本 / 视觉 / 图像 / 语音 / 向量)
---
+OpenAI 是覆盖最完整的厂商,可同时承担文本对话、视觉理解、图像生成、语音识别(ASR)、语音合成(TTS)和向量(Embedding)能力。一份 `open_ai_api_key` 即可让 Agent 用到全部能力。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+
+## 文本对话
+
```json
{
"model": "gpt-5.4",
@@ -13,7 +22,82 @@ description: OpenAI 模型配置
| 参数 | 说明 |
| --- | --- |
-| `model` | 与 OpenAI 接口的 [model 参数](https://platform.openai.com/docs/models) 一致,支持 o 系列、gpt-5.4、gpt-5.4-mini、gpt-5.4-nano、gpt-5 系列、gpt-4.1 等,Agent 模式推荐使用 `gpt-5.4` |
+| `model` | 与 OpenAI 接口的 [model 参数](https://platform.openai.com/docs/models) 一致,支持 `gpt-5.4`、`gpt-5.4-mini`、`gpt-5.4-nano`、`gpt-5` 系列、`gpt-4.1`、o 系列等;Agent 模式推荐 `gpt-5.4` |
| `open_ai_api_key` | 在 [OpenAI 平台](https://platform.openai.com/api-keys) 创建 |
-| `open_ai_api_base` | 可选,修改可接入第三方代理接口 |
-| `bot_type` | 使用 OpenAI 官方模型时无需填写。当通过代理接口使用 Claude 等非 OpenAI 模型时,设为 `openai` |
+| `open_ai_api_base` | 可选,修改可接入第三方代理 |
+| `bot_type` | 使用 OpenAI 官方模型时无需填写;通过兼容协议接入厂商模型时需设为 `openai` |
+
+## 图像理解
+
+`gpt-5.4`、`gpt-4o`、`gpt-4.1` 等 OpenAI 模型均原生支持视觉,配置 `open_ai_api_key` 后 Agent 的 Vision 工具会自动使用主模型识别图像。若主模型不支持视觉或希望显式指定,可在配置文件中配置:
+
+```json
+{
+ "tools": {
+ "vision": {
+ "model": "gpt-5.4-mini"
+ }
+ }
+}
+```
+
+支持的 Vision 模型:`gpt-5.4-mini`、`gpt-5.4-nano`、`gpt-5.4`、`gpt-5`、`gpt-4.1`、`gpt-4.1-mini`、`gpt-4o`。
+
+## 图像生成
+
+在配置文件中指定图像生成模型,Agent 调用图像生成技能时会自动路由到 OpenAI:
+
+```json
+{
+ "skills": {
+ "image-generation": {
+ "model": "gpt-image-2"
+ }
+ }
+}
+```
+
+支持的图像生成模型:`gpt-image-2`、`gpt-image-1`。
+
+## 语音识别
+
+```json
+{
+ "voice_to_text": "openai",
+ "voice_to_text_model": "gpt-4o-mini-transcribe"
+}
+```
+
+| 参数 | 说明 |
+| --- | --- |
+| `voice_to_text` | 设为 `openai` 启用 OpenAI 语音识别 |
+| `voice_to_text_model` | 可选,默认 `gpt-4o-mini-transcribe`;也可填 `gpt-4o-transcribe`、`whisper-1` |
+
+凭证自动复用 `open_ai_api_key`。
+
+## 语音合成
+
+```json
+{
+ "text_to_voice": "openai",
+ "text_to_voice_model": "tts-1",
+ "tts_voice_id": "alloy"
+}
+```
+
+| 参数 | 说明 |
+| --- | --- |
+| `text_to_voice_model` | `tts-1`、`tts-1-hd`、`gpt-4o-mini-tts` |
+| `tts_voice_id` | 音色:`alloy`、`echo`、`fable`、`onyx`、`nova`、`shimmer`、`ash`、`ballad`、`coral`、`sage`、`verse` |
+
+## 向量
+
+```json
+{
+ "embedding_provider": "openai",
+ "embedding_model": "text-embedding-3-small"
+}
+```
+
+可选模型:`text-embedding-3-small`、`text-embedding-3-large`、`text-embedding-ada-002`。修改 embedding 后需执行 `/memory rebuild-index` 命令重建索引。
+
diff --git a/docs/models/qianfan.mdx b/docs/models/qianfan.mdx
index 261a19b7..bdd87214 100644
--- a/docs/models/qianfan.mdx
+++ b/docs/models/qianfan.mdx
@@ -1,14 +1,20 @@
---
title: 百度千帆
-description: 百度千帆 ERNIE 模型配置
+description: 百度千帆 ERNIE 模型配置(文本对话 + 图像理解)
---
-方式一:官方接入(推荐):
+百度千帆提供 ERNIE 系列模型,支持文本对话与图像理解。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
```json
{
"model": "ernie-5.1",
- "qianfan_api_key": "",
+ "qianfan_api_key": "YOUR_API_KEY",
"qianfan_api_base": "https://qianfan.baidubce.com/v2"
}
```
@@ -19,7 +25,7 @@ description: 百度千帆 ERNIE 模型配置
| `qianfan_api_key` | 千帆 API Key,格式通常以 `bce-v3/` 开头 |
| `qianfan_api_base` | 可选,默认为 `https://qianfan.baidubce.com/v2` |
-## 模型选择
+### 模型选择
| 模型 | 适用场景 |
| --- | --- |
@@ -29,14 +35,14 @@ description: 百度千帆 ERNIE 模型配置
| `ernie-4.5-turbo-128k` | 长上下文和通用对话 |
| `ernie-4.5-turbo-32k` | 通用对话,成本和上下文更均衡 |
-## Vision 工具
+## 图像理解
配置 `qianfan_api_key` 后,Agent 的 Vision 工具可以自动使用千帆视觉模型:
- 当主模型本身是多模态时(如 `ernie-5.1`、`ernie-5.0`、`ernie-x1.1`、`ernie-4.5-turbo-vl`),直接由主模型识别图像,无需额外配置
- 当主模型是纯文本时(如 `ernie-4.5-turbo-128k`),Vision 工具会自动 fallback 到 `ernie-4.5-turbo-vl`
-如需手动指定 Vision 模型,可在 `config.json` 中显式配置:
+如需手动指定 Vision 模型,可在配置文件中显式配置:
```json
{
@@ -48,17 +54,6 @@ description: 百度千帆 ERNIE 模型配置
}
```
-方式二:OpenAI 兼容方式接入:
-
-```json
-{
- "model": "ernie-5.1",
- "bot_type": "openai",
- "open_ai_api_key": "",
- "open_ai_api_base": "https://qianfan.baidubce.com/v2"
-}
-```
-
新配置推荐使用 `qianfan_api_key`。旧的 `wenxin`、`wenxin-4`、`baidu_wenxin_api_key`、`baidu_wenxin_secret_key` 配置仍保持兼容。
diff --git a/docs/models/qwen.mdx b/docs/models/qwen.mdx
index 2bc6517d..7af9d96e 100644
--- a/docs/models/qwen.mdx
+++ b/docs/models/qwen.mdx
@@ -1,8 +1,16 @@
---
title: 通义千问 Qwen
-description: 通义千问模型配置
+description: 通义千问模型配置(文本 / 图像理解 / 图像生成 / 语音识别 / 语音合成 / 向量)
---
+通义千问(DashScope / 百炼)是国内覆盖最完整的厂商之一,文本、图像理解、图像生成、语音识别、语音合成与向量能力均可用一份 `dashscope_api_key` 启用。
+
+
+ 通过 Web 控制台的「模型管理」页面可一站式配置以下全部能力,无需手动改配置文件。
+
+
+## 文本对话
+
```json
{
"model": "qwen3.6-plus",
@@ -15,13 +23,90 @@ description: 通义千问模型配置
| `model` | 可填 `qwen3.6-plus`、`qwen3.5-plus`、`qwen3-max`、`qwen-max`、`qwen-plus`、`qwen-turbo`、`qwq-plus` 等 |
| `dashscope_api_key` | 在 [百炼控制台](https://bailian.console.aliyun.com/?tab=model#/api-key) 创建,参考 [官方文档](https://bailian.console.aliyun.com/?tab=api#/api) |
-也支持 OpenAI 兼容方式接入:
+## 图像理解
+
+配置 `dashscope_api_key` 后 Agent 的 Vision 工具会自动调用千问的视觉模型识别图像。`qwen3-max` / `qwen3.5-plus` / `qwen3.6-plus` 等模型本身就是多模态;若主模型是纯文本(如 `qwen-turbo`),会自动回落到 `qwen-vl-max`。
+
+如需手动指定 Vision 模型:
```json
{
- "bot_type": "openai",
- "model": "qwen3.6-plus",
- "open_ai_api_base": "https://dashscope.aliyuncs.com/compatible-mode/v1",
- "open_ai_api_key": "YOUR_API_KEY"
+ "tools": {
+ "vision": {
+ "model": "qwen3.6-plus"
+ }
+ }
}
```
+
+支持模型:`qwen3.6-plus`、`qwen3.5-plus`、`qwen3-max`。
+
+## 图像生成
+
+```json
+{
+ "skills": {
+ "image-generation": {
+ "model": "qwen-image-2.0"
+ }
+ }
+}
+```
+
+可选模型:`qwen-image-2.0`、`qwen-image-2.0-pro`。
+
+## 语音识别
+
+```json
+{
+ "voice_to_text": "dashscope",
+ "voice_to_text_model": "qwen3-asr-flash"
+}
+```
+
+| 参数 | 说明 |
+| --- | --- |
+| `voice_to_text` | 设为 `dashscope` 启用通义千问 ASR |
+| `voice_to_text_model` | 可选,默认 `qwen3-asr-flash` |
+
+凭证自动复用 `dashscope_api_key`。单段音频建议小于 10MB、时长不超过 300 秒。
+
+## 语音合成
+
+```json
+{
+ "text_to_voice": "dashscope",
+ "text_to_voice_model": "qwen3-tts-flash",
+ "tts_voice_id": "Cherry"
+}
+```
+
+| 参数 | 说明 |
+| --- | --- |
+| `text_to_voice_model` | 可选,默认 `qwen3-tts-flash`,覆盖普通话、方言与主流外语 |
+| `tts_voice_id` | 音色 ID,详见下方常用列表 |
+
+常用音色示例:
+
+| 音色 ID | 说明 |
+| --- | --- |
+| `Cherry` | 芊悦 · 阳光女声 |
+| `Serena` | 苏瑶 · 温柔女声 |
+| `Ethan` | 晨煦 · 阳光男声 |
+| `Chelsie` | 千雪 · 二次元少女 |
+| `Dylan` | 北京话 · 晓东 |
+| `Rocky` | 粤语 · 阿强 |
+| `Sunny` | 四川话 · 晴儿 |
+
+完整音色(普通话 / 各地方言 / 双语等)可在 Web 控制台的「模型管理 → 语音合成」下拉框中可视化选择。
+
+## 向量
+
+```json
+{
+ "embedding_provider": "dashscope",
+ "embedding_model": "text-embedding-v4"
+}
+```
+
+默认模型 `text-embedding-v4`。修改 embedding 后需执行 `/memory rebuild-index` 命令重建索引。
diff --git a/docs/releases/overview.mdx b/docs/releases/overview.mdx
index 6f685799..f70d6bc8 100644
--- a/docs/releases/overview.mdx
+++ b/docs/releases/overview.mdx
@@ -5,6 +5,7 @@ description: CowAgent 版本更新历史
| 版本 | 日期 | 说明 |
| --- | --- | --- |
+| [2.0.9](/releases/v2.0.9) | 2026.05.21 | MCP 工具生态接入、模型管理页重构(厂商凭据共享 + 多能力统一调度)、语音系统升级、浏览器持久登录 |
| [2.0.8](/releases/v2.0.8) | 2026.05.06 | 飞书渠道全面升级(语音、流式输出和Markdown、扫码一键接入)、DeepSeek V4和百度模型新增、定时任务工具增强 |
| [2.0.7](/releases/v2.0.7) | 2026.04.22 | 图像生成技能(六厂商自动路由)、新模型支持(Kimi K2.6、Claude Opus 4.7、GLM 5.1)、知识库增强、Web 控制台优化 |
| [2.0.6](/releases/v2.0.6) | 2026.04.14 | 项目更名、知识库系统、梦境记忆蒸馏、上下文智能压缩、Web 控制台多会话及多项优化 |
diff --git a/docs/releases/v2.0.9.mdx b/docs/releases/v2.0.9.mdx
new file mode 100644
index 00000000..f5b3f609
--- /dev/null
+++ b/docs/releases/v2.0.9.mdx
@@ -0,0 +1,92 @@
+---
+title: v2.0.9
+description: CowAgent 2.0.9 - MCP 工具生态接入、模型管理页重构、语音系统升级、浏览器持久登录
+---
+
+## 🧩 MCP 工具生态接入
+
+新增 **MCP(Model Context Protocol)** 工具集成,CowAgent 从固定工具集扩展为开放可插拔的工具生态。任何兼容 MCP 协议的服务(高德地图、Chrome DevTools、Filesystem、Playwright 等)都可作为工具直接接入 Agent。
+
+- **零额外依赖**:原生 JSON-RPC 实现,同时支持 `stdio`(本地进程)和 `sse`(远程 URL)两种传输
+- **兼容主流配置**:兼容 Claude Desktop / Cursor 风格的 `mcpServers` 配置,优先读取 `~/cow/mcp.json`,未配置则回退 `config.json`
+- **异步启动**:MCP 服务在后台线程启动,不阻塞 Agent 初始化;单个服务失败不影响整体
+
+相关文档:[MCP 工具](https://docs.cowagent.ai/tools/mcp) · 社区贡献 #2801 Thanks @yangluxin613
+
+## 🖥️ 模型管理页面重构
+
+「模型」页面整体重新设计,从原来按 LLM 厂商堆叠的列表,重构为 **厂商凭据 + 能力调度** 两层结构:一处配置厂商凭据,对话、图像、语音、向量、搜索等多个能力共享。
+
+- **厂商凭据集中管理**:所有支持厂商(OpenAI / Claude / Gemini / DeepSeek / Qwen / 豆包 / Kimi / 智谱 / MiniMax / 千帆 / LinkAI / Custom 等)的 API Key / API Base 在顶部统一维护,编辑后下方所有能力立即生效
+- **能力卡片**:按主模型、图像理解、图像生成、语音识别、语音合成、向量、联网搜索分卡,每个能力可独立选择厂商和模型,未配置时自动跟随主模型或按默认顺序回退
+
+### 多厂商联网搜索
+
+联网搜索升级为多厂商架构,**输出格式统一**:
+
+- 四家可选:博查(bocha)、百度千帆(qianfan)、智谱(zhipu)、LinkAI
+- 两种调度策略:`auto`(按 bocha > qianfan > zhipu > linkai 顺序自动选第一个已配置的厂商)/ `fixed`(固定指定厂商)
+- 配置 ≥2 家且为 `auto` 时,Agent 可在单次调用中临时指定 `provider` 切换搜索源
+
+### 向量厂商热切换
+
+向量(Embedding)支持多厂商,告别对 OpenAI 的单一依赖:
+
+- 原生支持 `openai` / `dashscope` / `doubao` / `zhipu` / `linkai`
+- **在线重建索引**:切换厂商后执行 `/memory rebuild-index`,无需重启、不会中断当前对话
+- 梦境日记默认排除在向量索引之外,避免反复出现在检索结果中干扰对话
+
+## 🎙️ 语音系统升级
+
+- **TTS 适配更多通道**:个人微信(ilink)、钉钉、企微智能机器人现已原生支持语音回复,开关沿用 `always_reply_voice` / `voice_reply_voice`;触发 TTS 时先发文本气泡再发语音消息,方便对照阅读
+- **新增 ASR 厂商**:百炼(DashScope)、智谱
+- **TTS 多厂商重构**:MiniMax / LinkAI / DashScope / 智谱 TTS 在流式合成、长文本切分、错误回退上更稳
+- **网页麦克风输入**:Web 控制台聊天框新增麦克风按钮,可直接录音发送,自动走 ASR 转文本
+
+## 🌐 浏览器工具
+
+浏览器工具支持三种启动模式,告别"每次开会话都得重新登录":
+
+- **持久化用户配置(默认)**:复用 `~/.cow/browser_profile`,登录一次后下次自动复用登录态
+- **CDP 模式**:通过 `cdp_endpoint` 附加到手动启动的真实 Chrome,享有完整指纹,适合反爬严格的站点
+- **Fresh 模式**:每次清空环境,适合做隔离任务
+
+此外,浏览器被用户中途关闭后下次调用会自动重新拉起,CDP 模式下不会误杀用户的 Chrome 进程。相关文档:[浏览器工具](https://docs.cowagent.ai/tools/browser) #2809
+
+## 🤖 新模型与模型增强
+
+- **百度 ERNIE 5.1**:新增 `ernie-5.1` 模型
+- **DeepSeek V4 reasoning_effort**:DeepSeek V4 系列支持 `reasoning_effort` 配置思考深度
+- **OpenRouter / Vercel AI Gateway 归因**:调用这两个平台时自动注入归因 Header,平台可正确识别 CowAgent 用量
+- 修复 MiMo 等思考模型在多轮对话中 `reasoning_content` 丢失的问题
+
+## 🚀 启动与运行体验
+
+来自社区的多项体验改进 Thanks @yangluxin613
+
+- **自动选端口 + 自动开浏览器**:默认端口被占用时自动切换,启动成功后默认打开控制台
+- **Ctrl+C 干净退出**:不再打印一长串堆栈
+- **日志面板**:差异化级别配色、多行日志继承级别、新增级别筛选 Checkbox
+
+## 🔒 部署与安全
+
+- **默认仅本机访问**:Web 控制台 `web_host` 默认 `127.0.0.1`,避免无密码情况下被外网直接访问;显式 `0.0.0.0` 且未设密码时给出提示
+- **前端资源完全本地化**:第三方 CSS / JS 全部本地分发,离线 / 内网环境也能正常加载控制台 #2816 Thanks @TryToMakeUsBetter
+- **支持文件夹上传**:上传区支持整目录一次性上传,路径校验适配 Windows #2815 Thanks @TryToMakeUsBetter
+
+## 🛠 其他改进与修复
+
+- **定时任务防重复执行**:调度器初始化做幂等处理
+- **工具失败状态持久化**:刷新页面或重载历史时失败的工具调用正确显示失败状态 #2822 Thanks @a1094174619
+- **企微机器人非法字符**:修复消息中包含非法控制字符导致投递失败的问题 #2810 Thanks @Jacques-Zhao
+- **飞书文件消息**:飞书通道支持文件消息接收
+- **工具配置合并**:修复用户自定义工具配置(如 `tools.browser`)被工作区默认值整体覆盖的问题,现按字段合并
+- 修复单文件上传偶发 TypeError、切换语言后 JS 动态视图未重渲染等问题
+
+## 📦 升级方式
+
+源码部署可执行 `cow update` 或 `./run.sh update` 一键升级,或手动拉取代码后重启。详见 [更新升级文档](https://docs.cowagent.ai/guide/upgrade)。
+
+> ⚠️ 切换向量厂商后,建议执行一次 `/memory rebuild-index`,让历史记忆按新的向量维度重新入库。
+
+**发布日期**:2026.05.21 | [Full Changelog](https://github.com/zhayujie/CowAgent/compare/2.0.8...2.0.9)
diff --git a/docs/skills/image-generation.mdx b/docs/skills/image-generation.mdx
index fed0e61d..288fd656 100644
--- a/docs/skills/image-generation.mdx
+++ b/docs/skills/image-generation.mdx
@@ -3,149 +3,87 @@ title: image-generation - 图像生成
description: 文生图 / 图生图 / 多图融合,支持多家厂商自动路由与回退
---
-通用的图像生成与编辑技能,支持 OpenAI、Gemini、Seedream(火山方舟)、Qwen(百炼)、MiniMax、LinkAI 共六家厂商。不需要手动选模型,脚本会按固定优先级自动挑选已配置的厂商来出图。
+通用的图像生成与编辑技能,支持 OpenAI、Gemini、Seedream(火山方舟)、Qwen(百炼)、MiniMax、LinkAI 共六家厂商。配好任意一家的 Key 即可使用,配多家可享受自动回退。
-## 模型选择
-
-`image-generation` 采用「固定优先级 + 自动回退」的策略,配好 Key 就能用:
-
-1. **优先级顺序**:`OpenAI → Gemini → Seedream → Qwen → MiniMax → LinkAI`
-2. **没配 Key 的跳过**:只有设了 API Key 的厂商才会参与
-3. **失败自动切下一家**:遇到 401、模型未开通、网络异常等错误时,会自动试下一个
-4. **指定模型时前置**:如果明确传了某个模型名,对应厂商会被提到最前面先试
-
-### 支持的模型
+## 支持的模型
| 厂商 | 模型 / 别名 | 特点 |
| --- | --- | --- |
-| OpenAI | `gpt-image-2`、`gpt-image-1` | 通用文生图,高质量、高智能,支持 `quality` 参数控制画质 |
+| OpenAI | `gpt-image-2`、`gpt-image-1` | 通用文生图,高质量,支持 `quality` 控制画质 |
| Gemini Nano Banana | `nano-banana-2`、`nano-banana-pro`、`nano-banana` | 对应 `gemini-3.1-flash`、`gemini-3-pro`、`gemini-2.5-flash` 的图像版本 |
| Seedream(火山方舟) | `seedream-5.0-lite`、`seedream-4.5` | 原生 2K–4K,最多 14 张图融合 |
| Qwen(百炼) | `qwen-image-2.0`、`qwen-image-2.0-pro` | 擅长中文排版和图文融合 |
-| MiniMax | `image-01` | 简单快速的图片生成 |
-| LinkAI | 任意模型 | 通用代理,兜底用 |
+| MiniMax | `image-01` | 简单快速 |
+| LinkAI | 任意模型 | 统一网关,作为兜底 |
-
-默认情况下 Agent 不会主动选模型,而是走自动路由。如果你想用某个特定模型,直接在对话里说就行,比如「用 seedream 画一只猫」或「用 gpt-image-2 生成海报」。也可以通过下面的「自定义配置」固定默认模型。
-
+## 模型选择
-## 自定义配置
+默认走「自动路由 + 失败回退」:
-### API Key 配置
+1. 按 `OpenAI → Gemini → Seedream → Qwen → MiniMax → LinkAI` 顺序选第一个已配置的厂商
+2. 遇到 401、模型未开通、网络异常等错误时,自动切到下一家
+3. 用户在对话里指定模型时(如「用 seedream 画一只猫」),对应厂商会被提到最前优先尝试
-至少需要配**一个**厂商的 Key,配多个就能享受自动回退能力。有三种配置方式:
-
-#### 方式一:已有模型 Key 自动复用
-
-如果你在 web控制台 或 `config.json` 中配置了对话模型的 Key(比如 `openai_api_key`、`gemini_api_key` 等),启动时这些 Key 会被**自动同步**到对应的环境变量。也就是说,只要你的对话模型能用,图像生成就能直接用同一个 Key,不需要额外配置。
-
-#### 方式二:在 config.json 中配置
-
-在 `config.json` 中直接写对应的 Key 字段即可,支持的字段如下:
+如需固定使用某个模型:
```json
{
- "openai_api_key": "sk-xxx",
- "openai_api_base": "https://api.openai.com/v1",
- "gemini_api_key": "AIza-xxx",
- "ark_api_key": "xxx",
- "dashscope_api_key": "sk-xxx",
- "minimax_api_key": "xxx",
- "linkai_api_key": "xxx"
-}
-```
-
-修改后需要重启生效。每个 Key 还有对应的 `*_api_base` 字段可以自定义接口地址。
-
-#### 方式三:对话中直接配置
-
-在对话里发送 API Key,Agent 会通过 `env_config` 工具自动保存到 `~/cow/.env`,**不需要重启**就能生效。例如:
-
-```
-帮我配置 OPENAI_API_KEY 为 sk-xxx
-```
-
-或者:
-
-```
-设置 ARK_API_KEY 为 xxx
-```
-
-### API Key 一览
-
-| 环境变量 | config.json 字段 | 对应厂商 | 默认 Base URL |
-| --- | --- | --- | --- |
-| `OPENAI_API_KEY` | `openai_api_key` | OpenAI | `https://api.openai.com/v1` |
-| `GEMINI_API_KEY` | `gemini_api_key` | Gemini | `https://generativelanguage.googleapis.com` |
-| `ARK_API_KEY` | `ark_api_key` | 火山方舟(Seedream) | `https://ark.cn-beijing.volces.com/api/v3` |
-| `DASHSCOPE_API_KEY` | `dashscope_api_key` | 阿里百炼(Qwen) | `https://dashscope.aliyuncs.com` |
-| `MINIMAX_API_KEY` | `minimax_api_key` | MiniMax | `https://api.minimaxi.com` |
-| `LINKAI_API_KEY` | `linkai_api_key` | LinkAI | `https://api.link-ai.tech` |
-
-
-### 指定默认模型
-
-如果想让所有图像生成固定走某个厂商的模型,可以在 `config.json` 里加:
-
-```json
-"skills": {
- "image-generation": {
- "model": "seedream-5.0-lite"
+ "skills": {
+ "image-generation": {
+ "model": "seedream-5.0-lite"
+ }
}
}
```
-启动时这段配置会被自动转成环境变量 `SKILL_IMAGE_GENERATION_MODEL`,脚本读到后会固定使用这个模型所在的厂商进行生成。
+## 配置 API Key
+
+
+ 推荐通过 [Web 控制台](/channels/web) 的「模型管理」页面配置,配好的对话模型 Key 会被图像生成技能自动复用,无需重复配置。也可手动编辑配置文件或在对话中通过 `env_config` 工具临时设置。
+
+
+凭证统一复用主模型厂商的 Key:
+
+| 字段 | 对应厂商 |
+| --- | --- |
+| `openai_api_key` | OpenAI |
+| `gemini_api_key` | Gemini |
+| `ark_api_key` | 火山方舟(Seedream) |
+| `dashscope_api_key` | 阿里百炼(Qwen) |
+| `minimax_api_key` | MiniMax |
+| `linkai_api_key` | LinkAI |
## 开启和关闭
-`image-generation` 是内置技能,**会根据 API Key 自动调整状态**:
+技能会根据 API Key 自动调整状态:
-- **Key 已配置**:技能正常可用,Agent 收到画图请求时会直接调用
-- **Key 未配置**:技能仍然会出现在上下文中(标记为「需要配置」),Agent 会引导用户去配 Key,而不是直接调用失败
+- **已配置 Key**:Agent 收到画图请求时直接调用
+- **未配置 Key**:技能仍会出现在上下文中(标记为「需要配置」),Agent 会引导用户去配 Key
-如果想手动控制,也可以用命令:
+如需手动控制:
```text
-/skill disable image-generation # 手动关闭(即使有 Key 也不会被调用)
+/skill disable image-generation # 关闭
/skill enable image-generation # 重新开启
```
-终端里对应的命令是 `cow skill disable image-generation` / `cow skill enable image-generation`。
+终端等价命令:`cow skill disable image-generation` / `cow skill enable image-generation`。
## 参数
| 参数 | 类型 | 必填 | 默认 | 说明 |
| --- | --- | --- | --- | --- |
| `prompt` | string | 是 | — | 图像描述 |
-| `image_url` | string / list | 否 | null | 编辑用的输入图,支持本地路径或 URL。传多个就是多图融合 |
-| `quality` | string | 否 | auto | `low` / `medium` / `high`,只有部分厂商支持 |
-| `size` | string | 否 | auto | `512` / `1K` / `2K` / `3K` / `4K`,也可以写像素值如 `1024x1024` |
+| `image_url` | string / list | 否 | null | 编辑用的输入图,本地路径或 URL;传列表为多图融合 |
+| `quality` | string | 否 | auto | `low` / `medium` / `high`,仅部分厂商支持 |
+| `size` | string | 否 | auto | `512` / `1K` / `2K` / `3K` / `4K`,或像素值如 `1024x1024` |
| `aspect_ratio` | string | 否 | null | `1:1` / `3:2` / `2:3` / `16:9` / `9:16` / `21:9`;Gemini 还支持 `1:4` / `4:1` / `1:8` / `8:1` |
-**质量越高、分辨率越大,花的钱越多、等的时间越长。**
-
-- 日常对话和快速预览直接用默认(`auto`),或者 `quality=low` + `size=1K`,大概 20 秒出图
-- 做海报、用户明确要高清的时候再上 `quality=high` + `size=2K/4K`,可能要等 1~5 分钟,取决于不同模型的速度
+ **质量越高、分辨率越大,耗时和成本越高。** 日常对话用默认(`auto`)或 `quality=low` + `size=1K` 即可,约 20 秒出图;做海报或明确要高清时再上 `high` + `2K/4K`,可能需要 1–5 分钟。
-## 输出
-
-成功时返回:
-
-```json
-{
- "model": "doubao-seedream-5-0-260128",
- "images": [
- {"url": "/path/to/output.png"}
- ]
-}
-```
-
-失败时返回 `{ "error": "..." }`。出错后**不要直接重试**——大概率是配置问题(Key 填错、API 地址不对、模型没开通),让用户修好配置再试。
-
## 常见用法
- **文生图**:根据描述生成插画、海报、图标、头像、分镜图等
@@ -153,8 +91,8 @@ description: 文生图 / 图生图 / 多图融合,支持多家厂商自动路
- **多图融合**:把多张参考图合成一张(换装、角色合影等)
-- bash 超时建议设 600 秒。单个厂商的 HTTP 超时是 300 秒,但脚本可能依次尝试多个厂商
-- 输入的图片会自动压缩到 4MB 以内、最长边不超过 4096px
-- Gemini / Seedream / Qwen / MiniMax 不支持 `quality` 参数,传了也没用
-- Seedream 默认出 2K 图,`seedream-5.0-lite` 支持到 3K,`seedream-4.5` 支持到 4K
+- bash 超时建议设 600 秒:单厂商 HTTP 超时 300 秒,脚本可能依次尝试多家
+- 输入图片自动压缩到 4MB 以内、最长边不超过 4096px
+- Gemini / Seedream / Qwen / MiniMax 不支持 `quality` 参数
+- Seedream 默认出 2K 图;`seedream-5.0-lite` 支持到 3K,`seedream-4.5` 支持到 4K
diff --git a/docs/tools/web-search.mdx b/docs/tools/web-search.mdx
index 2622d0c5..928eb633 100644
--- a/docs/tools/web-search.mdx
+++ b/docs/tools/web-search.mdx
@@ -1,32 +1,51 @@
---
title: web_search - 联网搜索
-description: 搜索互联网获取实时信息
+description: 搜索互联网获取实时信息,支持多个搜索厂商
---
-搜索互联网获取实时信息、新闻、研究等内容。支持两个搜索后端,自动选择可用的后端。
+搜索互联网获取实时信息、新闻、研究等内容。支持博查、百度千帆、智谱、LinkAI 四个后端,配置任意一家即可使用。
-## 依赖
+
+ 推荐通过 [Web 控制台](/channels/web) 的「模型管理 → 搜索」面板可视化配置厂商与策略,无需手动编辑配置文件。
+
-需要配置至少一个搜索 API Key(通过 `env_config` 工具或工作空间 `.env` 文件配置):
+## 厂商
-| 后端 | 环境变量 | 优先级 | 获取方式 |
-| --- | --- | --- | --- |
-| 博查搜索 | `BOCHA_API_KEY` | 优先使用 | [博查开放平台](https://open.bochaai.com/) |
-| LinkAI 搜索 | `LINKAI_API_KEY` | 可选 | [LinkAI 控制台](https://link-ai.tech/console/interface) |
+| 厂商 | 凭证 | 申请入口 |
+| --- | --- | --- |
+| 博查 Bocha | `tools.web_search.bocha_api_key` | [博查开放平台](https://open.bochaai.com/) |
+| 百度千帆 | 复用 `qianfan_api_key` | [千帆控制台](https://cloud.baidu.com/doc/qianfan/s/2mh4su4uy) |
+| 智谱 Zhipu | 复用 `zhipu_ai_api_key` | [智谱开放平台](https://docs.bigmodel.cn/cn/guide/tools/web-search) |
+| LinkAI | 复用 `linkai_api_key` | [LinkAI 控制台](https://link-ai.tech/console/interface) |
-## 参数
+除博查需要单独的 `bocha_api_key` 外,其他三家直接复用对应模型的 API Key,配好模型即同时获得搜索能力。
+
+## 路由策略
+
+```json
+{
+ "tools": {
+ "web_search": {
+ "strategy": "auto",
+ "provider": ""
+ }
+ }
+}
+```
+
+- `auto`(默认):由 Agent 在已配置的厂商中智能选择,并可在一次任务中多次调用、切换不同厂商以获取更全面的结果;未指定时按 `bocha → qianfan → zhipu → linkai` 顺序兜底。
+- `fixed`:固定使用 `provider` 指定的厂商;该厂商凭证缺失时自动回落到 auto 顺序。
+
+## 工具参数
| 参数 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `query` | string | 是 | 搜索关键词 |
-| `count` | integer | 否 | 返回结果数量(1-50,默认 10) |
-| `freshness` | string | 否 | 时间范围:`noLimit`、`oneDay`、`oneWeek`、`oneMonth`、`oneYear`,或日期范围如 `2025-01-01..2025-02-01` |
+| `count` | integer | 否 | 返回结果数量(1–50,默认 10) |
+| `freshness` | string | 否 | 时间范围:`noLimit`(默认)、`oneDay`、`oneWeek`、`oneMonth`、`oneYear`,或日期范围如 `2025-01-01..2025-02-01` |
| `summary` | boolean | 否 | 是否返回页面摘要(默认 false) |
-
-## 使用场景
-
-当用户询问最新信息、需要事实核查或获取实时数据时,Agent 会自动调用此工具。
+| `provider` | string | 否 | `auto` 策略下配置了多个厂商时可见,用于单次切换厂商 |
- 如果未配置任何搜索 API Key,该工具不会被加载。
+ 四家凭证均未配置时,该工具不会注册到 Agent。