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

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions