diff --git a/README.md b/README.md
index 71a1218a..e6b479ba 100644
--- a/README.md
+++ b/README.md
@@ -115,7 +115,7 @@ irm https://cdn.link-ai.tech/code/cow/run.ps1 | iex
项目支持国内外主流厂商的模型接口,可选模型及配置说明参考:[模型说明](#模型说明)。
-> 注:Agent 模式下推荐使用以下模型,可根据效果及成本综合选择:deepseek-v4-flash、MiniMax-M2.7、glm-5.1、kimi-k2.6、qwen3.5-plus、claude-sonnet-4-6、gemini-3.1-pro-preview、gpt-5.4、gpt-5.4-mini、ernie-4.5-turbo-128k
+> 注:Agent 模式下推荐使用以下模型,可根据效果及成本综合选择:deepseek-v4-flash、MiniMax-M2.7、glm-5.1、kimi-k2.6、qwen3.5-plus、claude-sonnet-4-6、gemini-3.1-pro-preview、gpt-5.4、gpt-5.4-mini、ernie-5.0
同时支持使用 **LinkAI 平台** 接口,支持上述全部模型,并支持知识库、工作流、插件等 Agent 技能,参考 [接口文档](https://docs.link-ai.tech/platform/api)。
@@ -603,23 +603,20 @@ API Key 创建:在 [控制台](https://aistudio.google.com/app/apikey?hl=zh-cn
```json
{
- "model": "ernie-4.5-turbo-128k",
- "qianfan_api_key": "",
- "qianfan_api_base": "https://qianfan.baidubce.com/v2"
+ "model": "ernie-5.0",
+ "qianfan_api_key": ""
}
```
- - `model`: 推荐填写 `ernie-4.5-turbo-128k`,也可填写 `ernie-4.5-turbo-32k`、`ernie-x1-turbo-32k`
+ - `model`: 默认推荐填写 `ernie-5.0`,也可填写 `ernie-4.5-turbo-128k`、`ernie-4.5-turbo-32k`、`ernie-x1-turbo-32k`
- `qianfan_api_key`: 百度千帆 API Key,通常以 `bce-v3/` 开头,可在百度智能云控制台创建
- `qianfan_api_base`: 可选,默认为 `https://qianfan.baidubce.com/v2`
-兼容说明:旧配置 `model: "wenxin"`、`model: "wenxin-4"`、`baidu_wenxin_api_key`、`baidu_wenxin_secret_key` 仍可继续使用。
-
方式二:OpenAI 兼容方式接入,配置如下:
```json
{
"bot_type": "openai",
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"open_ai_api_base": "https://qianfan.baidubce.com/v2",
"open_ai_api_key": ""
}
diff --git a/channel/web/web_channel.py b/channel/web/web_channel.py
index fd456bae..08c58147 100644
--- a/channel/web/web_channel.py
+++ b/channel/web/web_channel.py
@@ -772,7 +772,6 @@ class ConfigHandler:
_RECOMMENDED_MODELS = [
const.DEEPSEEK_V4_FLASH, const.DEEPSEEK_V4_PRO, const.DEEPSEEK_CHAT, const.DEEPSEEK_REASONER,
- const.ERNIE_45_TURBO_128K, const.ERNIE_45_TURBO_32K, const.ERNIE_X1_TURBO_32K,
const.MINIMAX_M2_7_HIGHSPEED, const.MINIMAX_M2_7, const.MINIMAX_M2_5, const.MINIMAX_M2_1, const.MINIMAX_M2_1_LIGHTNING,
const.CLAUDE_4_6_SONNET, const.CLAUDE_4_7_OPUS, const.CLAUDE_4_6_OPUS, const.CLAUDE_4_5_SONNET,
const.GEMINI_31_FLASH_LITE_PRE, const.GEMINI_31_PRO_PRE, const.GEMINI_3_FLASH_PRE,
@@ -781,6 +780,7 @@ class ConfigHandler:
const.QWEN36_PLUS, const.QWEN35_PLUS, const.QWEN3_MAX,
const.DOUBAO_SEED_2_PRO, const.DOUBAO_SEED_2_CODE,
const.KIMI_K2_6, const.KIMI_K2_5, const.KIMI_K2,
+ const.ERNIE_5, const.ERNIE_45_TURBO_128K, const.ERNIE_45_TURBO_32K, const.ERNIE_X1_TURBO_32K,
]
# Generic placeholder hints surfaced in the web console. We deliberately
@@ -803,14 +803,6 @@ class ConfigHandler:
"api_base_placeholder": _PLACEHOLDER_V1,
"models": [const.DEEPSEEK_V4_FLASH, const.DEEPSEEK_V4_PRO, const.DEEPSEEK_CHAT, const.DEEPSEEK_REASONER],
}),
- ("qianfan", {
- "label": "百度千帆",
- "api_key_field": "qianfan_api_key",
- "api_base_key": "qianfan_api_base",
- "api_base_default": "https://qianfan.baidubce.com/v2",
- "api_base_placeholder": _PLACEHOLDER_QIANFAN,
- "models": [const.ERNIE_45_TURBO_128K, const.ERNIE_45_TURBO_32K, const.ERNIE_X1_TURBO_32K],
- }),
("minimax", {
"label": "MiniMax",
"api_key_field": "minimax_api_key",
@@ -875,6 +867,14 @@ class ConfigHandler:
"api_base_placeholder": _PLACEHOLDER_V1,
"models": [const.KIMI_K2_6, const.KIMI_K2_5, const.KIMI_K2],
}),
+ ("qianfan", {
+ "label": "百度千帆",
+ "api_key_field": "qianfan_api_key",
+ "api_base_key": "qianfan_api_base",
+ "api_base_default": "https://qianfan.baidubce.com/v2",
+ "api_base_placeholder": _PLACEHOLDER_QIANFAN,
+ "models": [const.ERNIE_5, const.ERNIE_45_TURBO_128K, const.ERNIE_45_TURBO_32K, const.ERNIE_X1_TURBO_32K],
+ }),
("modelscope", {
"label": "ModelScope",
"api_key_field": "modelscope_api_key",
diff --git a/cli/VERSION b/cli/VERSION
index f1547e6d..815e68dd 100644
--- a/cli/VERSION
+++ b/cli/VERSION
@@ -1 +1 @@
-2.0.7
+2.0.8
diff --git a/common/const.py b/common/const.py
index ea8d80e5..9742af9c 100644
--- a/common/const.py
+++ b/common/const.py
@@ -87,6 +87,7 @@ DEEPSEEK_V4_FLASH = "deepseek-v4-flash" # DeepSeek V4 Flash - 默认推荐 (思
DEEPSEEK_V4_PRO = "deepseek-v4-pro" # DeepSeek V4 Pro - 复杂任务更强 (思考模式 + 工具调用)
# Baidu Qianfan / ERNIE
+ERNIE_5 = "ernie-5.0" # ERNIE 5.0 - default recommendation
ERNIE_45_TURBO_128K = "ernie-4.5-turbo-128k"
ERNIE_45_TURBO_32K = "ernie-4.5-turbo-32k"
ERNIE_X1_TURBO_32K = "ernie-x1-turbo-32k"
@@ -167,7 +168,7 @@ MODEL_LIST = [
DEEPSEEK_V4_FLASH, DEEPSEEK_V4_PRO, DEEPSEEK_CHAT, DEEPSEEK_REASONER,
# Baidu Qianfan / ERNIE
- QIANFAN, ERNIE_45_TURBO_128K, ERNIE_45_TURBO_32K, ERNIE_X1_TURBO_32K, ERNIE_4_TURBO_8K,
+ QIANFAN, ERNIE_5, ERNIE_45_TURBO_128K, ERNIE_45_TURBO_32K, ERNIE_X1_TURBO_32K, ERNIE_4_TURBO_8K,
# MiniMax
MiniMax, MINIMAX_M2_7, MINIMAX_M2_7_HIGHSPEED, MINIMAX_M2_5, MINIMAX_M2_1, MINIMAX_M2_1_LIGHTNING, MINIMAX_M2, MINIMAX_ABAB6_5,
diff --git a/docs/docs.json b/docs/docs.json
index f83a9c6d..3b236a1a 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -81,6 +81,7 @@
"models/qwen",
"models/doubao",
"models/kimi",
+ "models/qianfan",
"models/linkai",
"models/coding-plan",
"models/custom"
@@ -208,6 +209,7 @@
"group": "发布记录",
"pages": [
"releases/overview",
+ "releases/v2.0.8",
"releases/v2.0.7",
"releases/v2.0.6",
"releases/v2.0.5",
@@ -266,6 +268,7 @@
"en/models/qwen",
"en/models/doubao",
"en/models/kimi",
+ "en/models/qianfan",
"en/models/linkai",
"en/models/coding-plan",
"en/models/custom"
@@ -392,10 +395,12 @@
"group": "Release Notes",
"pages": [
"en/releases/overview",
+ "en/releases/v2.0.8",
"en/releases/v2.0.7",
"en/releases/v2.0.6",
"en/releases/v2.0.5",
"en/releases/v2.0.4",
+ "en/releases/v2.0.3",
"en/releases/v2.0.2",
"en/releases/v2.0.1",
"en/releases/v2.0.0"
@@ -450,6 +455,7 @@
"ja/models/qwen",
"ja/models/doubao",
"ja/models/kimi",
+ "ja/models/qianfan",
"ja/models/linkai",
"ja/models/coding-plan",
"ja/models/custom"
@@ -577,6 +583,7 @@
"group": "リリースノート",
"pages": [
"ja/releases/overview",
+ "ja/releases/v2.0.8",
"ja/releases/v2.0.7",
"ja/releases/v2.0.6",
"ja/releases/v2.0.5",
diff --git a/docs/en/models/index.mdx b/docs/en/models/index.mdx
index 07da562e..ca7cf344 100644
--- a/docs/en/models/index.mdx
+++ b/docs/en/models/index.mdx
@@ -6,7 +6,7 @@ description: Supported models and recommended choices for CowAgent
CowAgent supports mainstream LLMs from domestic and international providers. Model interfaces are implemented in the project's `models/` directory.
- For Agent mode, the following models are recommended based on quality and cost: 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-4.5-turbo-128k
+ For Agent mode, the following models are recommended based on quality and cost: 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.0
## Configuration
@@ -22,7 +22,7 @@ You can also use the [LinkAI](https://link-ai.tech) platform interface to flexib
deepseek-v4-flash, deepseek-v4-pro, and more
- ernie-4.5-turbo-128k, ernie-x1-turbo-32k, and more
+ ernie-5.0, ernie-4.5-turbo-128k, and more
MiniMax-M2.7 and other series models
diff --git a/docs/en/models/qianfan.mdx b/docs/en/models/qianfan.mdx
index e0612912..10a4e862 100644
--- a/docs/en/models/qianfan.mdx
+++ b/docs/en/models/qianfan.mdx
@@ -7,7 +7,7 @@ Option 1: Native integration (recommended):
```json
{
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"qianfan_api_key": "",
"qianfan_api_base": "https://qianfan.baidubce.com/v2"
}
@@ -15,7 +15,7 @@ Option 1: Native integration (recommended):
| Parameter | Description |
| --- | --- |
-| `model` | Recommended: `ernie-4.5-turbo-128k`; also supports `ernie-4.5-turbo-32k` and `ernie-x1-turbo-32k` |
+| `model` | Default recommendation: `ernie-5.0`; also supports `ernie-4.5-turbo-128k`, `ernie-4.5-turbo-32k`, `ernie-x1-turbo-32k` |
| `qianfan_api_key` | Qianfan API key, usually starting with `bce-v3/` |
| `qianfan_api_base` | Optional, defaults to `https://qianfan.baidubce.com/v2` |
@@ -23,7 +23,8 @@ Option 1: Native integration (recommended):
| Model | Use Case |
| --- | --- |
-| `ernie-4.5-turbo-128k` | Default recommendation for long-context and general chat |
+| `ernie-5.0` | Default recommendation; latest ERNIE flagship with the strongest overall capability |
+| `ernie-4.5-turbo-128k` | Long-context and general chat |
| `ernie-4.5-turbo-32k` | General chat with a balanced context window and cost |
| `ernie-x1-turbo-32k` | Tasks that need stronger reasoning |
@@ -31,7 +32,7 @@ Option 2: OpenAI-compatible configuration:
```json
{
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"bot_type": "openai",
"open_ai_api_key": "",
"open_ai_api_base": "https://qianfan.baidubce.com/v2"
diff --git a/docs/en/releases/v2.0.3.mdx b/docs/en/releases/v2.0.3.mdx
new file mode 100644
index 00000000..9547cc43
--- /dev/null
+++ b/docs/en/releases/v2.0.3.mdx
@@ -0,0 +1,91 @@
+---
+title: v2.0.3
+description: CowAgent 2.0.3 - WeCom Smart Bot and QQ channels, Web Console file handling, memory system upgrade
+---
+
+## 🔌 New Channels
+
+### WeCom Smart Bot
+
+Added the WeCom Smart Bot (`wecom_bot`) channel with streaming card output, support for receiving and replying to text and image messages, and full configuration through the Web Console.
+
+Documentation: [WeCom Smart Bot](https://docs.cowagent.ai/en/channels/wecom-bot).
+
+Related commits: [d4480b6](https://github.com/zhayujie/CowAgent/commit/d4480b6), [a42f31f](https://github.com/zhayujie/CowAgent/commit/a42f31f), [4ecd4df](https://github.com/zhayujie/CowAgent/commit/4ecd4df), [8b45d6c](https://github.com/zhayujie/CowAgent/commit/8b45d6c)
+
+### QQ Channel
+
+Added the QQ official bot (`qq`) channel with support for text and image messages in both private chats and group chats.
+
+Documentation: [QQ Bot](https://docs.cowagent.ai/en/channels/qq).
+
+Related commits: [005a0e1](https://github.com/zhayujie/CowAgent/commit/005a0e1), [a4d54f5](https://github.com/zhayujie/CowAgent/commit/a4d54f5)
+
+## 🖥️ Web Console File Input and Processing
+
+The Web Console chat UI now supports file and image uploads — files can be sent directly to the agent for processing. The Read tool gains parsing support for Office documents (Word, Excel, PPT).
+
+Related commits: [30c6d9b](https://github.com/zhayujie/CowAgent/commit/30c6d9b)
+
+## 🤖 New Models
+
+- **GPT-5.4 Series**: Added `gpt-5.4`, `gpt-5.4-mini`, `gpt-5.4-nano` ([1623deb](https://github.com/zhayujie/CowAgent/commit/1623deb))
+- **Gemini 3.1 Flash Lite Preview**: Added `gemini-3.1-flash-lite-preview` ([ba915f2](https://github.com/zhayujie/CowAgent/commit/ba915f2))
+
+## 💰 Coding Plan Support
+
+Added integration with vendor Coding Plan (monthly programming subscription) tiers via the unified OpenAI-compatible path. Supported vendors include Aliyun, MiniMax, Zhipu GLM, Kimi, and Volcengine.
+
+See [Coding Plan docs](https://docs.cowagent.ai/en/models/coding-plan) for detailed configuration.
+
+## 🧠 Memory System Upgrade
+
+Memory flush improvements:
+
+- Use the LLM to summarize out-of-window conversations into compact daily memory entries
+- Summarization runs asynchronously on a background thread, never blocking replies
+- Smarter batch trimming policy reduces flush frequency
+- Daily scheduled flush as a safety net for low-activity scenarios
+- Fixed context-memory loss issues
+
+Related commits: [022c13f](https://github.com/zhayujie/CowAgent/commit/022c13f), [c116235](https://github.com/zhayujie/CowAgent/commit/c116235)
+
+## 🔧 Tool Refactoring
+
+- **Image Vision**: Image recognition (Vision) is refactored from a Skill into a built-in Tool with a dedicated Vision Provider configuration, improving stability and maintainability ([a50fafa](https://github.com/zhayujie/CowAgent/commit/a50fafa), [3b8b562](https://github.com/zhayujie/CowAgent/commit/3b8b562))
+- **Web Fetch**: Web fetch is refactored from a Skill into a built-in Tool with support for downloading and parsing remote documents (PDF, Word, Excel, PPT) ([ccb9030](https://github.com/zhayujie/CowAgent/commit/ccb9030), [fa61744](https://github.com/zhayujie/CowAgent/commit/fa61744))
+
+## 🐳 Docker Deployment Improvements
+
+- **Config Template Alignment**: `docker-compose.yml` env vars aligned with `config-template.json`, covering full model API key and Agent settings
+- **Web Console Port Mapping**: Added `9899` port mapping so the Web Console is reachable in browser after Docker deployment
+- **Hot Config Reload**: Bot API key and API base are now read at request time — changes from the Web Console take effect without restart
+- **Workspace Persistence**: Added a `./cow` volume mount so agent workspace data (memories, persona, skills, etc.) persists across container rebuilds and upgrades
+
+## ⚡ Performance Improvements
+
+- **Faster Startup**: The Feishu channel imports its dependencies lazily, avoiding a 4–10s startup delay ([924dc79](https://github.com/zhayujie/CowAgent/commit/924dc79))
+- **Channel Stability**: Improved channel connection stability and added env-var support for channel configuration ([f1c04bc](https://github.com/zhayujie/CowAgent/commit/f1c04bc), [46d97fd](https://github.com/zhayujie/CowAgent/commit/46d97fd))
+
+## 🐛 Bug Fixes
+
+- **bot_type Propagation**: Fixed `bot_type` propagation under Agent mode ([#2691](https://github.com/zhayujie/CowAgent/pull/2691)) Thanks [@Weikjssss](https://github.com/Weikjssss)
+- **bot_type Resolution Priority**: Adjusted `bot_type` resolution priority under Agent mode ([#2692](https://github.com/zhayujie/CowAgent/pull/2692)) Thanks [@6vision](https://github.com/6vision)
+- **Zhipu Config**: Fixed Zhipu `bot_type` naming, Web Console persistence, and regex escaping ([#2693](https://github.com/zhayujie/CowAgent/pull/2693)) Thanks [@6vision](https://github.com/6vision)
+- **OpenAI-Compat Layer**: Unified error handling via the `openai_compat` layer ([#2688](https://github.com/zhayujie/CowAgent/pull/2688)) Thanks [@JasonOA888](https://github.com/JasonOA888)
+- **OpenAI-Compat Migration**: Completed the `openai_compat` migration across all model bots ([#2689](https://github.com/zhayujie/CowAgent/pull/2689))
+- **Gemini Tool Calling**: Fixed tool-call matching for Gemini ([eda82ba](https://github.com/zhayujie/CowAgent/commit/eda82ba))
+- **Session Concurrency**: Fixed race conditions in concurrent session scenarios ([9879878](https://github.com/zhayujie/CowAgent/commit/9879878))
+- **History Recovery**: Fixed incomplete history recovery — only user/assistant text messages are restored, tool calls are stripped ([b788a3d](https://github.com/zhayujie/CowAgent/commit/b788a3d), [a33ce97](https://github.com/zhayujie/CowAgent/commit/a33ce97))
+- **Feishu Group Chat**: Removed the `bot_name` dependency for Feishu group chats ([b641bff](https://github.com/zhayujie/CowAgent/commit/b641bff))
+- **Safari Compatibility**: Fixed an IME Enter key issue that mistakenly sent messages on Safari ([0687916](https://github.com/zhayujie/CowAgent/commit/0687916))
+- **Windows Compatibility**: Fixed bash-style `$VAR` to `%VAR%` env-var conversion on Windows ([7c67513](https://github.com/zhayujie/CowAgent/commit/7c67513))
+- **MiniMax Params**: Added a `max_tokens` cap for MiniMax models ([1767413](https://github.com/zhayujie/CowAgent/commit/1767413))
+- **.gitignore**: Added Python directory ignore rules ([#2683](https://github.com/zhayujie/CowAgent/pull/2683)) Thanks [@pelioo](https://github.com/pelioo)
+- **AGENT.md Proactive Evolution**: Improved the system prompt guidance around AGENT.md — instead of waiting for explicit user edits, the agent now proactively detects persona/style shifts in the conversation and updates AGENT.md accordingly
+
+## 📦 Upgrade
+
+Run `./run.sh update` for a one-click upgrade, or manually pull the latest code and restart. See [Upgrade Guide](https://docs.cowagent.ai/en/guide/upgrade) for details.
+
+**Release Date**: 2026.03.18 | [Full Changelog](https://github.com/zhayujie/CowAgent/compare/2.0.2...2.0.3)
diff --git a/docs/en/releases/v2.0.8.mdx b/docs/en/releases/v2.0.8.mdx
new file mode 100644
index 00000000..3298ed55
--- /dev/null
+++ b/docs/en/releases/v2.0.8.mdx
@@ -0,0 +1,68 @@
+---
+title: v2.0.8
+description: CowAgent 2.0.8 - Major Feishu channel upgrade (voice, streaming typewriter, one-click QR app creation), DeepSeek V4 / Baidu Qianfan ERNIE 5.0 support, scheduler memory enhancements and multiple fixes
+---
+
+## 🪶 Major Feishu Channel Upgrade
+
+### 1. One-click QR-scan App Creation
+
+No more manual app setup, permission scopes and event subscriptions in the Feishu Open Platform. When `feishu_app_id` is not configured, both the Web Console and CLI startup flow now show a QR-scan entry — scan with Feishu, authorize, and the bot is created and config is filled back automatically. Out-of-the-box.
+
+Documentation: [Feishu Channel](https://docs.cowagent.ai/en/channels/feishu)
+
+### 2. Voice Messages
+
+Receive Feishu voice messages with automatic speech-to-text, and reply in voice via TTS. Recognition accuracy for short Chinese voice messages has been improved.
+
+### 3. Streaming Typewriter Replies
+
+Integrated with Feishu CardKit streaming cards, **enabled by default**, matching the Web Console experience:
+
+- Multi-turn agent flows render intermediate updates and the final reply on separate cards
+- Tuned for high-throughput models like DeepSeek to keep pace with the Web Console
+- Falls back to plain text replies automatically when not supported, no manual config needed
+- Requires Feishu client ≥ 7.20
+
+The voice and streaming building blocks come from a community contribution #2791. Thanks [@ooaaooaa123](https://github.com/ooaaooaa123)
+
+## 🤖 New Model Support
+
+- **DeepSeek V4 series**: Added `deepseek-v4-pro` / `deepseek-v4-flash`, with `deepseek-v4-flash` set as the new default
+- **Unified thinking-mode toggle**: DeepSeek V4, Qwen3 and other thinking-capable models now share the same `enable_thinking` switch
+- **Baidu Qianfan / ERNIE first-class integration**: New `qianfan` provider supporting `ernie-5.0` (default recommendation), `ernie-4.5-turbo-128k`, `ernie-4.5-turbo-32k`, `ernie-x1-turbo-32k`. Dedicated `qianfan_api_key` / `qianfan_api_base` settings keep OpenAI config clean; legacy `wenxin` / `wenxin-4` paths are fully preserved. #2790 Thanks [@jimmyzhuu](https://github.com/jimmyzhuu)
+
+ Documentation: [Baidu Qianfan / ERNIE](https://docs.cowagent.ai/en/models/qianfan)
+
+## 🌐 Translation Provider
+
+- **Youdao translator**: Added a Youdao provider to the `translate/` module using the v3 SHA-256 signing scheme, with automatic ISO 639-1 language-code mapping (`zh`, `zh-TW`, etc.) #2797 Thanks [@Zmjjeff7](https://github.com/Zmjjeff7)
+
+## 🛠 OpenAI Client Refactor
+
+- **Drop SDK dependency**: The OpenAI bot is reimplemented on a native HTTP client — leaner startup, fewer dependency conflicts
+- **Web Console hint**: API base inputs in the model config UI now include version-path placeholder hints
+
+## ⏰ Scheduler Memory Enhancements
+
+- **Follow-up on task results**: Scheduled task results are automatically injected into the receiver's session history — the next turn can ask follow-up questions without re-stating context. Thanks [@huangrichao2020](https://github.com/huangrichao2020)
+- **No long-term memory pollution**: Scheduler-injected pairs are excluded from the daily memory flush so high-frequency tasks don't drown the memory store
+- **Bounded scheduler context**: The scheduler's own session context is automatically capped, so long-running periodic tasks don't accumulate state and slow down replies
+
+## 🔧 Tools and Safety
+
+- **Vision model selection**: `tool.vision.model` config now actually takes effect, with automatic fallback when unconfigured #2792
+- **Bash safety prompt**: The destructive-deletion confirm prompt is now scoped to paths outside the workspace — routine in-workspace operations are no longer interrupted
+
+## 🐛 Other Fixes
+
+- Fixed Deep Dream firing duplicate runs in multi-instance setups
+- Fixed missing `reasoning_content` on some history turns in DeepSeek multi-turn conversations
+
+## 📦 Upgrade
+
+Source-code deployments can run `cow update` or `./run.sh update` for a one-click upgrade, or pull the latest code and restart manually. See [Upgrade Guide](https://docs.cowagent.ai/en/guide/upgrade) for details.
+
+> ⚠️ One-click Feishu app creation requires `lark-oapi>=1.5.5`. `cow update` pulls it automatically; manual deployments must update dependencies.
+
+**Release Date**: 2026.05.05 | [Full Changelog](https://github.com/zhayujie/CowAgent/compare/2.0.7...2.0.8)
diff --git a/docs/ja/models/index.mdx b/docs/ja/models/index.mdx
index e6d45862..b1047fb7 100644
--- a/docs/ja/models/index.mdx
+++ b/docs/ja/models/index.mdx
@@ -6,7 +6,7 @@ description: CowAgentがサポートするモデルとおすすめの選択肢
CowAgentは国内外の主要なLLMをサポートしています。モデルインターフェースはプロジェクトの`models/`ディレクトリに実装されています。
- 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-4.5-turbo-128k
+ 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.0
## 設定
@@ -22,7 +22,7 @@ CowAgentは国内外の主要なLLMをサポートしています。モデルイ
deepseek-v4-flash、deepseek-v4-pro など
- ernie-4.5-turbo-128k、ernie-x1-turbo-32k など
+ ernie-5.0、ernie-4.5-turbo-128k など
MiniMax-M2.7およびその他のシリーズモデル
diff --git a/docs/ja/models/qianfan.mdx b/docs/ja/models/qianfan.mdx
index cf8d5042..5fe11622 100644
--- a/docs/ja/models/qianfan.mdx
+++ b/docs/ja/models/qianfan.mdx
@@ -7,7 +7,7 @@ description: Baidu Qianfan ERNIE モデル設定
```json
{
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"qianfan_api_key": "",
"qianfan_api_base": "https://qianfan.baidubce.com/v2"
}
@@ -15,7 +15,7 @@ description: Baidu Qianfan ERNIE モデル設定
| パラメータ | 説明 |
| --- | --- |
-| `model` | 推奨は `ernie-4.5-turbo-128k`。`ernie-4.5-turbo-32k` と `ernie-x1-turbo-32k` も利用できます |
+| `model` | デフォルトの推奨は `ernie-5.0`。`ernie-4.5-turbo-128k`、`ernie-4.5-turbo-32k`、`ernie-x1-turbo-32k` も利用できます |
| `qianfan_api_key` | Qianfan API Key。通常は `bce-v3/` で始まります |
| `qianfan_api_base` | 任意。デフォルトは `https://qianfan.baidubce.com/v2` |
@@ -23,7 +23,8 @@ description: Baidu Qianfan ERNIE モデル設定
| モデル | 用途 |
| --- | --- |
-| `ernie-4.5-turbo-128k` | 長いコンテキストと一般的なチャット向けの推奨モデル |
+| `ernie-5.0` | デフォルト推奨。文心の最新フラッグシップモデルで、総合性能が最も強い |
+| `ernie-4.5-turbo-128k` | 長いコンテキストと一般的なチャット向け |
| `ernie-4.5-turbo-32k` | コンテキスト長とコストのバランスが良い一般チャット向け |
| `ernie-x1-turbo-32k` | より強い推論が必要なタスク向け |
@@ -31,7 +32,7 @@ description: Baidu Qianfan ERNIE モデル設定
```json
{
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"bot_type": "openai",
"open_ai_api_key": "",
"open_ai_api_base": "https://qianfan.baidubce.com/v2"
diff --git a/docs/ja/releases/v2.0.8.mdx b/docs/ja/releases/v2.0.8.mdx
new file mode 100644
index 00000000..f45bcc85
--- /dev/null
+++ b/docs/ja/releases/v2.0.8.mdx
@@ -0,0 +1,68 @@
+---
+title: v2.0.8
+description: CowAgent 2.0.8 - 飛書チャネル全面アップグレード(音声、ストリーミングタイプライター、ワンクリック QR アプリ作成)、DeepSeek V4 / 百度千帆 ERNIE 5.0 サポート、スケジューラ記憶強化および複数の修正
+---
+
+## 🪶 飛書チャネル全面アップグレード
+
+### 1. ワンクリック QR スキャンでアプリ作成
+
+飛書オープンプラットフォームで手動でアプリを作成し、権限とイベントサブスクリプションを設定する必要がなくなりました。Web コンソールおよびコマンドライン起動時に `feishu_app_id` が未設定の場合、QR スキャン入口が自動的に表示されます。飛書でスキャン・認可するとボットが自動作成され、設定が自動で書き戻され、すぐに使い始められます。
+
+ドキュメント:[飛書チャネル](https://docs.cowagent.ai/ja/channels/feishu)
+
+### 2. 音声メッセージ送受信
+
+ユーザーから送られた飛書の音声メッセージを受信し、自動的にテキストへ変換できるようになりました。返信も TTS による音声形式に対応。中国語の短い音声メッセージの認識精度も改善されています。
+
+### 3. ストリーミングタイプライター返信
+
+飛書 CardKit ストリーミングカードを統合し、**デフォルト有効**で Web コンソールと同等の体験を提供:
+
+- マルチターンの Agent シナリオで、中間メッセージと最終回答を別カードで表示
+- DeepSeek など高頻度出力モデル向けに最適化、Web コンソールと同等の速度を実現
+- 非対応時は自動的に通常のテキスト返信にフォールバック、手動設定不要
+- 飛書クライアント ≥ 7.20 が必要
+
+飛書の音声メッセージ送受信とストリーミングタイプライターのベース機能はコミュニティ貢献 #2791 によるものです。Thanks [@ooaaooaa123](https://github.com/ooaaooaa123)
+
+## 🤖 新モデルサポート
+
+- **DeepSeek V4 シリーズ**:`deepseek-v4-pro` / `deepseek-v4-flash` を追加、デフォルトモデルを `deepseek-v4-flash` に切り替え
+- **思考モデルスイッチの統一**:DeepSeek V4、Qwen3 など思考対応モデルの切り替え動作を `enable_thinking` に統一
+- **百度千帆 / ERNIE のファーストクラス対応**:新たな `qianfan` プロバイダーを追加。`ernie-5.0`(デフォルト推奨)、`ernie-4.5-turbo-128k`、`ernie-4.5-turbo-32k`、`ernie-x1-turbo-32k` をサポート。`qianfan_api_key` / `qianfan_api_base` の独立設定により OpenAI 設定を汚染せず、旧来の `wenxin` / `wenxin-4` パスも完全互換 #2790 Thanks [@jimmyzhuu](https://github.com/jimmyzhuu)
+
+ ドキュメント:[百度千帆 / ERNIE](https://docs.cowagent.ai/ja/models/qianfan)
+
+## 🌐 翻訳プロバイダー
+
+- **有道翻訳を追加**:`translate/` モジュールに有道翻訳プロバイダーを追加。v3 SHA-256 署名方式に対応し、`zh` / `zh-TW` などの ISO 639-1 言語コードを自動マッピング #2797 Thanks [@Zmjjeff7](https://github.com/Zmjjeff7)
+
+## 🛠 OpenAI クライアントのリファクタリング
+
+- **SDK 依存を排除**:OpenAI Bot をネイティブ HTTP クライアントに刷新、起動が軽量化、依存衝突も削減
+- **Web コンソールヒント**:モデル設定の API Base 入力欄にバージョンパスのプレースホルダーヒントを追加
+
+## ⏰ スケジューラ記憶強化
+
+- **タスク結果への追問**:定期タスクの実行結果を受信側のセッション履歴に自動注入。次のターンでコンテキストを再説明することなくそのまま追問可能 Thanks [@huangrichao2020](https://github.com/huangrichao2020)
+- **長期記憶を汚染しない**:注入されたスケジューラ対話は毎日の記憶フラッシュ対象から除外され、高頻度タスクで記憶ストアが埋まることを防止
+- **遅くなり続ける問題を回避**:スケジューラ自身のコンテキスト長を自動制限、長期反復実行でも蓄積して応答を遅延させません
+
+## 🔧 ツールと安全性
+
+- **Vision モデル選択**:`tool.vision.model` 設定が実際に反映されるようになり、未設定時は自動フォールバック #2792
+- **Bash セーフティ確認**:破壊的削除の確認プロンプトをワークスペース外のパスに限定。ワークスペース内の通常操作は中断されません
+
+## 🐛 その他の修正
+
+- マルチインスタンス環境で Deep Dream が重複実行される問題を修正
+- DeepSeek マルチターン会話の一部の履歴ターンで `reasoning_content` が欠落する問題を修正
+
+## 📦 アップグレード
+
+ソースコードデプロイは `cow update` または `./run.sh update` でワンクリックアップグレード、または最新コードを手動で pull して再起動してください。詳細は[アップグレードガイド](https://docs.cowagent.ai/ja/guide/upgrade)を参照。
+
+> ⚠️ 飛書のワンクリックアプリ作成は `lark-oapi>=1.5.5` が必要です。`cow update` は自動で取得します。手動デプロイの場合は依存関係の更新を確認してください。
+
+**リリース日**:2026.05.05 | [Full Changelog](https://github.com/zhayujie/CowAgent/compare/2.0.7...2.0.8)
diff --git a/docs/models/index.mdx b/docs/models/index.mdx
index 23862055..e2808b71 100644
--- a/docs/models/index.mdx
+++ b/docs/models/index.mdx
@@ -6,7 +6,7 @@ description: CowAgent 支持的模型及推荐选择
CowAgent 支持国内外主流厂商的大语言模型,模型接口实现在项目的 `models/` 目录下。
- 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-4.5-turbo-128k
+ 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.0
同时支持使用 [LinkAI](https://link-ai.tech) 平台接口,可灵活切换多种模型,并支持知识库、工作流、插件等 Agent 能力。
@@ -27,7 +27,7 @@ CowAgent 支持国内外主流厂商的大语言模型,模型接口实现在
deepseek-v4-flash、deepseek-v4-pro 等
- ernie-4.5-turbo-128k、ernie-x1-turbo-32k 等
+ ernie-5.0、ernie-4.5-turbo-128k 等
MiniMax-M2.7 等系列模型
diff --git a/docs/models/qianfan.mdx b/docs/models/qianfan.mdx
index a013b259..4d71593f 100644
--- a/docs/models/qianfan.mdx
+++ b/docs/models/qianfan.mdx
@@ -1,5 +1,5 @@
---
-title: 百度千帆 / ERNIE
+title: 百度千帆
description: 百度千帆 ERNIE 模型配置
---
@@ -7,7 +7,7 @@ description: 百度千帆 ERNIE 模型配置
```json
{
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"qianfan_api_key": "",
"qianfan_api_base": "https://qianfan.baidubce.com/v2"
}
@@ -15,7 +15,7 @@ description: 百度千帆 ERNIE 模型配置
| 参数 | 说明 |
| --- | --- |
-| `model` | 推荐使用 `ernie-4.5-turbo-128k`;也可使用 `ernie-4.5-turbo-32k`、`ernie-x1-turbo-32k` |
+| `model` | 默认推荐使用 `ernie-5.0`;也可使用 `ernie-4.5-turbo-128k`、`ernie-4.5-turbo-32k`、`ernie-x1-turbo-32k` |
| `qianfan_api_key` | 千帆 API Key,格式通常以 `bce-v3/` 开头 |
| `qianfan_api_base` | 可选,默认为 `https://qianfan.baidubce.com/v2` |
@@ -23,7 +23,8 @@ description: 百度千帆 ERNIE 模型配置
| 模型 | 适用场景 |
| --- | --- |
-| `ernie-4.5-turbo-128k` | 默认推荐,适合长上下文和通用对话 |
+| `ernie-5.0` | 默认推荐,文心新一代旗舰模型,综合能力最强 |
+| `ernie-4.5-turbo-128k` | 长上下文和通用对话 |
| `ernie-4.5-turbo-32k` | 通用对话,成本和上下文更均衡 |
| `ernie-x1-turbo-32k` | 需要更强推理能力的任务 |
@@ -31,7 +32,7 @@ description: 百度千帆 ERNIE 模型配置
```json
{
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"bot_type": "openai",
"open_ai_api_key": "",
"open_ai_api_base": "https://qianfan.baidubce.com/v2"
diff --git a/docs/releases/overview.mdx b/docs/releases/overview.mdx
index 5973c102..6b3911fd 100644
--- a/docs/releases/overview.mdx
+++ b/docs/releases/overview.mdx
@@ -5,6 +5,7 @@ description: CowAgent 版本更新历史
| 版本 | 日期 | 说明 |
| --- | --- | --- |
+| [2.0.8](/releases/v2.0.8) | 2026.05.05 | 飞书渠道全面升级(语音、流式打字机、一键扫码创建应用)、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 控制台多会话及多项优化 |
| [2.0.5](/releases/v2.0.5) | 2026.04.01 | Cow CLI、Skill Hub 开源、浏览器工具、企微扫码创建、多项优化和修复 |
diff --git a/docs/releases/v2.0.8.mdx b/docs/releases/v2.0.8.mdx
new file mode 100644
index 00000000..e162fbcf
--- /dev/null
+++ b/docs/releases/v2.0.8.mdx
@@ -0,0 +1,63 @@
+---
+title: v2.0.8
+description: CowAgent 2.0.8 - 飞书渠道全面升级(语音、流式打字机、一键扫码接入)、DeepSeek V4 / 百度千帆支持、定时任务工具优化
+---
+
+## 🪶 飞书渠道全面升级
+
+### 1. 一键扫码创建飞书应用
+
+不再需要手动到飞书开放平台建应用、填权限和事件订阅。Web 控制台和命令行启动时若未配置 `feishu_app_id`,会自动展示扫码入口,飞书扫码授权后自动创建机器人并回填配置,开箱即用。
+
+相关文档:[飞书渠道](https://docs.cowagent.ai/channels/feishu)
+
+### 2. 语音消息收发
+
+支持接收用户发送的飞书语音消息并自动转文本,回复也可走 TTS 以语音形式发出。同时优化了中文短语音的识别准确度。
+
+### 3. 流式打字机回复
+
+接入飞书 CardKit 流式卡片,**默认开启**,体验对齐 Web 端:
+
+- 多轮 Agent 场景下中间过场消息与最终回复分卡呈现
+- 针对 DeepSeek 等高频输出模型做了专门优化,速度与 Web 端持平
+- 不支持时自动回退为普通文本回复,无需手动配置
+- 要求飞书客户端 ≥ 7.20
+
+飞书语音消息收发与流式打字机的基础能力来自社区贡献 #2791 Thanks @ooaaooaa123
+
+## 🤖 新模型支持
+
+- **DeepSeek V4 系列**:新增 `deepseek-v4-pro` / `deepseek-v4-flash`,并将默认模型切换为 `deepseek-v4-flash`
+- **思考模型开关统一**:DeepSeek V4、Qwen3 等思考模型的开关行为对齐到 `enable_thinking`
+- **百度千帆模型接入**:新增百度千帆厂商,支持 `ernie-5.0`、`ernie-4.5-turbo-128k` 等模型, 相关文档查看 [百度千帆](https://docs.cowagent.ai/models/qianfan)。#2790 Thanks @jimmyzhuu
+- **新增有道翻译**:`translate` 模块新增有道翻译支持 #2797 Thanks @Zmjjeff7
+
+## 🛠 OpenAI 客户端重构
+
+- **去 SDK 依赖**:OpenAI Bot 改为原生 HTTP 实现,启动更轻、依赖冲突更少
+- **Web 控制台提示**:模型配置 API Base 输入框加入版本路径占位提示
+
+## ⏰ 定时任务记忆增强
+
+- **任务结果可被追问**:定时任务的执行结果自动注入到接收方的会话历史中,下一轮对话可直接追问,无需重新交代上下文 Thanks @huangrichao2020
+- **不污染长期记忆**:注入的调度对话不会被纳入每日梦境记忆汇总,避免高频任务把记忆刷满
+- **避免越跑越慢**:调度任务自己的上下文长度自动控制在合理范围内,长期反复执行也不会越积越大、拖慢响应
+
+## 🔧 工具与安全
+
+- **图像识别模型**:让 `tool.vision.model` 配置真正生效,未配置时自动 fallback #2792 Thanks CNXudiandian
+- **Bash 安全确认**:仅对工作区外的破坏性删除做二次确认,工作区内常规操作不再打扰
+
+## 🐛 其他修复
+
+- 修复 Deep Dream 在多实例场景下重复触发
+- 修复 DeepSeek 多轮对话中部分历史轮次缺失 `reasoning_content`
+
+## 📦 升级方式
+
+源码部署可执行 `cow update` 或 `./run.sh update` 一键升级,或手动拉取代码后重启。详见 [更新升级文档](https://docs.cowagent.ai/guide/upgrade)。
+
+> ⚠️ 飞书一键创建应用依赖 `lark-oapi>=1.5.5`,`cow update` 会自动拉取;手动部署请确保依赖已更新。
+
+**发布日期**:2026.05.05 | [Full Changelog](https://github.com/zhayujie/CowAgent/compare/2.0.7...2.0.8)
diff --git a/models/qianfan/qianfan_bot.py b/models/qianfan/qianfan_bot.py
index 0896611a..1626479e 100644
--- a/models/qianfan/qianfan_bot.py
+++ b/models/qianfan/qianfan_bot.py
@@ -14,7 +14,7 @@ from models.session_manager import SessionManager
from .qianfan_session import QianfanSession
DEFAULT_API_BASE = "https://qianfan.baidubce.com/v2"
-DEFAULT_MODEL = const.ERNIE_45_TURBO_128K
+DEFAULT_MODEL = const.ERNIE_5
class QianfanBot(Bot, OpenAICompatibleBot):
diff --git a/models/qianfan/qianfan_session.py b/models/qianfan/qianfan_session.py
index b5e19153..aebd0594 100644
--- a/models/qianfan/qianfan_session.py
+++ b/models/qianfan/qianfan_session.py
@@ -3,7 +3,7 @@ from common.log import logger
class QianfanSession(Session):
- def __init__(self, session_id, system_prompt=None, model="ernie-4.5-turbo-128k"):
+ def __init__(self, session_id, system_prompt=None, model="ernie-5.0"):
super().__init__(session_id, system_prompt)
self.model = model
self.reset()
diff --git a/tests/test_qianfan_provider.py b/tests/test_qianfan_provider.py
index e2c3d4fe..7f638e9e 100644
--- a/tests/test_qianfan_provider.py
+++ b/tests/test_qianfan_provider.py
@@ -102,7 +102,7 @@ class TestQianfanConstantsAndRouting(unittest.TestCase):
class TestQianfanBot(unittest.TestCase):
def _fake_conf(self, values=None):
data = {
- "model": "ernie-4.5-turbo-128k",
+ "model": "ernie-5.0",
"qianfan_api_key": "test-qianfan-key",
"qianfan_api_base": "https://qianfan.baidubce.com/v2",
"temperature": 0.7,
@@ -140,7 +140,7 @@ class TestQianfanBot(unittest.TestCase):
bot = QianfanBot()
- self.assertEqual(bot.args["model"], "ernie-4.5-turbo-128k")
+ self.assertEqual(bot.args["model"], "ernie-5.0")
def test_reply_text_posts_openai_compatible_payload(self):
fake_conf = self._fake_conf()
@@ -169,7 +169,7 @@ class TestQianfanBot(unittest.TestCase):
kwargs = post.call_args.kwargs
self.assertEqual(url, "https://qianfan.baidubce.com/v2/chat/completions")
self.assertEqual(kwargs["headers"]["Authorization"], "Bearer test-qianfan-key")
- self.assertEqual(kwargs["json"]["model"], "ernie-4.5-turbo-128k")
+ self.assertEqual(kwargs["json"]["model"], "ernie-5.0")
self.assertEqual(kwargs["json"]["messages"], [{"role": "user", "content": "你好"}])
def test_reply_text_returns_auth_error_for_401(self):
@@ -272,7 +272,7 @@ class TestQianfanDocs(unittest.TestCase):
def test_readme_documents_native_qianfan_provider(self):
text = self._read("README.md")
- self.assertIn('"model": "ernie-4.5-turbo-128k"', text)
+ self.assertIn('"model": "ernie-5.0"', text)
self.assertIn('"qianfan_api_key": ""', text)
self.assertIn('"qianfan_api_base": "https://qianfan.baidubce.com/v2"', text)