Skip to content

deepseek-v4.1-flash tool-calling regression: missing tool_calls, DSML markers leaking into content (since Sep 22) #909

Description

@xdxiebug

Summary

Since the morning of 2026-09-22 (starting 02:21 UTC), tool calling on deepseek-v4.1-flash has regressed: the model no longer returns the standard tool_calls field. Instead, DeepSeek's internal DSML tool-call markup is emitted as plain text inside content, making it unparseable for any agent client that relies on standard tool_calls.

Environment

Client: pi-coding-agent (0.86.1 / 0.87.0 — behavior identical on both, ruling out a client regression)
Model: deepseek-v4.1-flash
API: OpenAI-compatible endpoint, with tools defined in the request body
Affected window: 2026-09-22 10:21 – 10:56 (UTC+8), for server-side log lookup

Expected Behavior

{
"choices": [{
"message": {
"content": null,
"tool_calls": [{
"id": "...",
"type": "function",
"function": { "name": "read", "arguments": "{"path": "..."}" }
}]
}
}]
}

Actual Behavior

I'll run a grilling session. First, let me read the skill and gather the facts.

<||DSML|| calls>
<||DSML|| invoke name="read">
<||DSML|| parameter name="path" string="true">/Users/xiaodi/.agents/skills/grill-me/SKILL.md</||DSML|| parameter>
</||DSML|| invoke>
</||DSML|| calls>

Steps to reproduce the issue

Time | Status -- | -- Sep 16 – 21 | Tool calling fully normal — ~420 responses with parsed tool_calls, zero anomalies Sep 22, 10:21 onward | Identical requests start returning the leaked format; 100% reproducible across retries Sep 22, 10:49 | Client upgraded to 0.87.0 — no change, ruling out a client regression Sep 22, 11:00 | Switching to glm-5.3-flash restores normal tool calling — issue specific to deepseek-family models

Command Code Version

go sub

Operating System

macOS

Terminal/IDE

No response

Shell

No response

Session file (optional)

No response

Fix prompt (optional)

No response

Additional context

No response

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions