diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index abf13adea..5e1a417f1 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "f3bcea8732728f83d23b7aeb6adc63b4231b3252", - "syncedAt": "2026-04-24T15:19:36.895Z" + "sha": "3a64aa49a9014518fa1977fbc023f3e0b978ae5d", + "syncedAt": "2026-04-24T15:31:29.822Z" } diff --git a/docs/help/testing-live.md b/docs/help/testing-live.md index 51ec6f899..f8fb22f8c 100644 --- a/docs/help/testing-live.md +++ b/docs/help/testing-live.md @@ -48,7 +48,7 @@ Live tests are split into two layers so we can isolate failures: - `pnpm test:live` (or `OPENCLAW_LIVE_TEST=1` if invoking Vitest directly) - Set `OPENCLAW_LIVE_MODELS=modern` (or `all`, alias for modern) to actually run this suite; otherwise it skips to keep `pnpm test:live` focused on gateway smoke - How to select models: - - `OPENCLAW_LIVE_MODELS=modern` to run the modern allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) + - `OPENCLAW_LIVE_MODELS=modern` to run the modern allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4) - `OPENCLAW_LIVE_MODELS=all` is an alias for the modern allowlist - or `OPENCLAW_LIVE_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,..."` (comma allowlist) - Modern/all sweeps default to a curated high-signal cap; set `OPENCLAW_LIVE_MAX_MODELS=0` for an exhaustive modern sweep or a positive number for a smaller cap. @@ -82,7 +82,7 @@ Live tests are split into two layers so we can isolate failures: - How to enable: - `pnpm test:live` (or `OPENCLAW_LIVE_TEST=1` if invoking Vitest directly) - How to select models: - - Default: modern allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, GLM 4.7, MiniMax M2.7, Grok 4) + - Default: modern allowlist (Opus/Sonnet 4.6+, GPT-5.2 + Codex, Gemini 3, DeepSeek V4, GLM 4.7, MiniMax M2.7, Grok 4) - `OPENCLAW_LIVE_GATEWAY_MODELS=all` is an alias for the modern allowlist - Or set `OPENCLAW_LIVE_GATEWAY_MODELS="provider/model"` (or comma list) to narrow - Modern/all gateway sweeps default to a curated high-signal cap; set `OPENCLAW_LIVE_GATEWAY_MAX_MODELS=0` for an exhaustive modern sweep or a positive number for a smaller cap. @@ -287,7 +287,7 @@ Narrow, explicit allowlists are fastest and least flaky: - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` - Tool calling across several providers: - - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` + - `OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3-flash-preview,deepseek/deepseek-v4-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` - Google focus (Gemini API key + Antigravity): - Gemini (API key): `OPENCLAW_LIVE_GATEWAY_MODELS="google/gemini-3-flash-preview" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` @@ -315,11 +315,12 @@ This is the “common models” run we expect to keep working: - Anthropic: `anthropic/claude-opus-4-6` (or `anthropic/claude-sonnet-4-6`) - Google (Gemini API): `google/gemini-3.1-pro-preview` and `google/gemini-3-flash-preview` (avoid older Gemini 2.x models) - Google (Antigravity): `google-antigravity/claude-opus-4-6-thinking` and `google-antigravity/gemini-3-flash` +- DeepSeek: `deepseek/deepseek-v4-flash` and `deepseek/deepseek-v4-pro` - Z.AI (GLM): `zai/glm-4.7` - MiniMax: `minimax/MiniMax-M2.7` Run gateway smoke with tools + image: -`OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` +`OPENCLAW_LIVE_GATEWAY_MODELS="openai/gpt-5.2,openai-codex/gpt-5.2,anthropic/claude-opus-4-6,google/gemini-3.1-pro-preview,google/gemini-3-flash-preview,google-antigravity/claude-opus-4-6-thinking,google-antigravity/gemini-3-flash,deepseek/deepseek-v4-flash,zai/glm-4.7,minimax/MiniMax-M2.7" pnpm test:live src/gateway/gateway-models.profiles.live.test.ts` ### Baseline: tool calling (Read + optional Exec) @@ -328,6 +329,7 @@ Pick at least one per provider family: - OpenAI: `openai/gpt-5.2` - Anthropic: `anthropic/claude-opus-4-6` (or `anthropic/claude-sonnet-4-6`) - Google: `google/gemini-3-flash-preview` (or `google/gemini-3.1-pro-preview`) +- DeepSeek: `deepseek/deepseek-v4-flash` - Z.AI (GLM): `zai/glm-4.7` - MiniMax: `minimax/MiniMax-M2.7` diff --git a/docs/providers/deepseek.md b/docs/providers/deepseek.md index 412f2ee6d..2209c9e3e 100644 --- a/docs/providers/deepseek.md +++ b/docs/providers/deepseek.md @@ -33,6 +33,14 @@ read_when: ```bash openclaw models list --provider deepseek ``` + + To inspect the bundled static catalog without requiring a running Gateway, + use: + + ```bash + openclaw models list --all --provider deepseek + ``` + @@ -73,6 +81,38 @@ DeepSeek `reasoning_content` on follow-up turns so thinking sessions with tool calls can continue. +## Thinking and tools + +DeepSeek V4 thinking sessions have a stricter replay contract than most +OpenAI-compatible providers: when a thinking-enabled assistant message includes +tool calls, DeepSeek expects the prior assistant `reasoning_content` to be sent +back on the follow-up request. OpenClaw handles this inside the DeepSeek plugin, +so normal multi-turn tool use works with `deepseek/deepseek-v4-flash` and +`deepseek/deepseek-v4-pro`. + +When thinking is disabled in OpenClaw (including the UI **None** selection), +OpenClaw sends DeepSeek `thinking: { type: "disabled" }` and strips replayed +`reasoning_content` from the outgoing history. This keeps disabled-thinking +sessions on the non-thinking DeepSeek path. + +Use `deepseek/deepseek-v4-flash` for the default fast path. Use +`deepseek/deepseek-v4-pro` when you want the stronger V4 model and can accept +higher cost or latency. + +## Live testing + +The direct live model suite includes DeepSeek V4 in the modern model set. To +run only the DeepSeek V4 direct-model checks: + +```bash +OPENCLAW_LIVE_PROVIDERS=deepseek \ +OPENCLAW_LIVE_MODELS="deepseek/deepseek-v4-flash,deepseek/deepseek-v4-pro" \ +pnpm test:live src/agents/models.profiles.live.test.ts +``` + +That live check verifies both V4 models can complete and that thinking/tool +follow-up turns preserve the replay payload DeepSeek requires. + ## Config example ```json5