anomalyco / anomalyco/opencode

[Bug] ccswitch (opencode-go) 路由在流式响应中给每个 chunk 加列表前缀,导致重复项目符号

Open
#39,643 0 comments 0 reactions 1 assignee View on GitHub

@MrMushrooooom is already working on this.

Since Jul 30, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Description

在使用 ccswitch(opencode-go 的路由)作为 Anthropic/Claude Code 的代理时,流式响应的每个 chunk 被错误地当作独立的 Markdown 列表项并加上列表前缀(例如 “●”、“*”、“-” 等),导致终端显示为大量重复的项目符号。换回 DeepSeek/官方 API 一切正常,怀疑是 ccswitch 路由在把后端模型的流式响应转换为 Anthropic 格式时错误地拆分并在每个片段前注入了列表前缀。

预期行为:流式输出应为连续文本片段,客户端负责拼接,不应在每个 chunk 前注入 Markdown 列表前缀。

请修复 ccswitch/opencode-go 路由的流式转发逻辑,保证不修改后端原始文本 token 的前后拼接或不在 chunk 前加列表符号。

Plugins

ccswitch(opencode-go 路由) 代理 Anthropic/Claude Code 流式请求

OpenCode version

No response

Steps to reproduce
  1. 在环境中将 ANTHROPIC_BASE_URL 指向 ccswitch/opencode-go 路由(本地或部署的路由地址)。
  2. 通过该路由发送 Claude Code(或其他 Anthropic-compatible 模型)的流式请求。
  3. 在客户端(或终端)观察流式输出:每个 chunk 被单独作为一行/一项输出,且前面带有“●”或“*”等列表前缀,导致输出呈现为大量重复的列表项。
  4. 将同样的请求直接指向 DeepSeek/官方 API(不通过 ccswitch 路由),流式输出恢复正常(连续文本,没有额外的列表前缀)。
  5. 可选:在路由端或本地通过 curl -N 直接观测原始 SSE/chunk 内容,能看到每个 chunk 带有列表前缀(用于确认问题发生在路由/代理端)。
Screenshot and/or share link

示例原始 chunk(脱敏示例):
[RAW CHUNK] "● 你的\n"
[RAW CHUNK] "● API\n"
[RAW CHUNK] "● 代理在\n"
[RAW CHUNK] "● 把每个 token 片段作为独立列表项\n"

(实际捕获到的 chunk 会以类似方式在每条前面含有 • 或 * 等符号)
**你的

● API 代理在

● 流式输出时

● ,把每个小

● 片段错误地加

● 上了 *

● 前缀(

● markdown 列表语法

● ),导致终端把

● 每个片段渲染成一个

● ●

● 圆点。**

● 具体发生了什么:

● - 正常情况下:

● 文本是连续流畅

● 的一段话。

● - 你的情况

● :代理把每个

● chunk 都当成了

● 独立的列表项发送

● 屏的 `●

● `。

根本

● 原因:你的 `

● ANTHROPIC

● _BASE_URL`

● 指向 `12

● 7.0.

● 0.1:

● 1572

● 1`,这是个

● 第三方代理。它在

● 把后端模型(

● DeepSeek/Qwen

● 等)的

● 流式响应转换成

● Anthropic 格式

● 时,没有正确

● 拼接文本,而是

● 把每个 token

● 片段单独发出去

● ,还带上了

● 错误的 markdown 格式

● 前缀。

● 怎么修:

● 测试,确认是不是

● 代理的问题。

● 2. 调

● 代理设置——看你

● 用的是什么代理软件

● (one-api?

● new-api?),

● 关掉流式或

● 调大 chunk

● 缓冲。
3

● . 告诉我你

● 用的代理软件,

● 我帮你查具体

● 配置。

Operating System

windows 11

Terminal

cmd

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.