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。