Skip to content

使用 Codex CLI + deepseek-v4-pro 时,DSML 工具调用格式泄露到响应文本中 #58

Description

@hammer2dev

环境信息

  • Moon Bridge 版本:latest(基于 main 分支构建,2026-05-25)
  • 部署方式:Docker 自托管
  • 客户端:Codex CLI
  • Provider:DeepSeek
  • 模型:deepseek-v4-pro(路由别名:moonbridge)
  • 上游地址:https://api.deepseek.com/anthropic
  • deepseek_v4 扩展:已启用
  • reinforce_instructions:true

问题描述

在使用 Codex CLI 执行编码任务时,deepseek-v4-pro 偶发性地将原始 DSML 工具调用标记直接输出到响应文本流中,而非生成标准的 tool_use 结构体。导致 Codex CLI 显示乱码输出,agentic 任务流程中断。

复现步骤

  1. 配置 Moon Bridge,将 deepseek-v4-pro 路由到 DeepSeek Anthropic 兼容接口
  2. 配置 Codex CLI 连接 Moon Bridge(wire_api = "responses"
  3. 交给 Codex 一个需要工具调用的编码任务(如读写文件、web fetch 等)
  4. 观察响应流输出

实际表现

原始 DSML 标记泄露到响应文本中,示例如下:

<||DSML||tool_calls>
<||DSML||invoke name="web_fetch">
<||DSML||parameter name="url" string="true">https://github.com/ZhiYi-R/moon-bridge


期望表现

deepseek_v4 扩展应拦截 DSML 格式的工具调用,并将其转换为标准 Anthropic tool_use content block 再返回给客户端,响应文本中不应出现任何原始 DSML 标记。

补充说明

  • 问题为偶发性,在多步 agentic 任务中概率触发
  • 已配置 reinforce_instructions: true,但未能完全避免该问题
  • 目前仅在 deepseek-v4-pro 上确认,deepseek-v4-flash 尚未复现
  • 推测原因:DeepSeek 在处理复杂多工具 agentic 提示时,偶发性回退到 DSML 格式而非标准 JSON tool_use

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions