[开源项目] 让你的 API 更像 Anthropic— 支持 CC 搜索
这又是一个重复造轮子系列,目的是解决一些公益站不支持 CC、模型不支持工具调用的问题,该项目可以让不支持工具调用的模型获得工具调用的能力
在佬友项目B4U2CC:让 B4U 支持 Claude Code+思考的基础上进行大量的迭代更新,
- 支持了多组配置,可以配置多个站点,使用
渠道+模型名称的形式进行分流 - 支持的密钥透传
- 支持使用
firecrawl来模拟官方 api 才有的的web search和web fetch功能 (目前仅 Preview 分支,测试镜像ghcr.io/passerby1011/cc-proxy:preview) - 在 b4u2cc 的基础上改用了 @curaalizm 佬友项目的随机字符标识
感觉更稳定?好像? - 增加了远端 pg 数据库存储配置(hugging face 部署,冲!!!)
- 增加了工具内部重试 (测试 ing)
- 增加了 web 管理界面 (/admin),配置更方便
┌─────────────┐
│ Claude Code │ ──① Claude API 请求──▶
└─────────────┘ (包含 tools 定义)
┌──────────────────────────────────────┐
│ cc-proxy 代理层 │
│ │
│ ② 提示词注入 (prompt_inject.ts) │
│ • 工具定义 → XML 格式提示词 │
│ • 注入到 system prompt │
│ • 生成唯一分隔符 │
│ │
│ ③ 协议转换 (map_claude_to_openai.ts) │
│ • Claude Messages API │
│ → OpenAI Chat Completions │
│ • 保持流式兼容 │
│ │
│ ④ 上游转发 (upstream.ts) │
│ • 支持 OpenAI 协议 │
│ • 支持 Anthropic 协议 │
│ • SSE 流式处理 │
└──────────────────────────────────────┘
│
▼
┌──────────────────┐
│ 上游 AI 服务 │ ──⑤ 返回 XML 格式的工具调用──▶
│ (GPT-4/Claude等) │
└──────────────────┘
┌──────────────────────────────────────┐
│ cc-proxy 代理层 │
│ │
│ ⑥ 智能解析 (parser.ts) │
│ • 识别 XML 工具调用块 │
│ • 识别 <thinking> 块 │
│ • 提取工具名称和参数 │
│ │
│ ⑦ 标准化输出 (claude_writer.ts) │
│ • 生成标准 Claude SSE 事件 │
│ • tool_use 消息块 │
│ • thinking 消息块 │
└──────────────────────────────────────┘
│
▼
┌─────────────┐
│ Claude Code │ ◀── 标准 Claude API 响应
└─────────────┘
Tip使用
firecrawl来模拟官方 api 才有的的web search和web fetch,这个思路可以引入到哪些能力更健全逆向模型上,更好的支持 cc
这个项目所有的工具调用都是用提示词来实现的,感觉还是太勉强
测试截图,模型来自 elysiver 的 claude-4.5-sonnet
吐槽:这数据从哪来的,编的和真一样
致谢:
Danger部署者能看到您的部分聊天上下文推荐自行部署以保证数据安全
Tip可能有非常多的 bug,代码都来自 claude,anthropic 公司对此负全责,有问题也可以找它修改
最后穷鬼求赞确实如此。
![[开源项目] 让你的 API 更像 Anthropic— 支持 CC 搜索2](https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/images/2026/01/10/20260110192132_6962363cb0f9c.png!mark)
![[开源项目] 让你的 API 更像 Anthropic— 支持 CC 搜索4](https://xiaohack.oss-cn-zhangjiakou.aliyuncs.com/typecho/images/2026/01/10/20260110192155_6962365372245.png!mark)