#3598·headroom

[功能]

作者: skittlejohn创建于 2026年9月15日更新于 2026年9月15日
标签enhancement

□ 问题说明

Claude代码 v2.1.129+ 通过网关模型发现支持运行非Claude模型("CLAUDE CODE ENOLE GATEWAY MODEL DISCOVERY=1"+一个"GET/v1/models"终点"). LitelLM在其[Claude代码教程](https://docs.litellm.ai/docs/tutorials/claude non harmic models)中记录了这个模式. 头室后端是LiteLLM,已经做了90%的AnthropicOpenAI API翻译,为非Claude模型服务——但有3个硬码过滤器和一个缺失的端点阻止了它工作.

□ 当前状态

"LiteLLMBackend"已经:

  • 转换 Anthropic 内容块(文本、工具 使用、工具 结果)
  • 转换工具计划、工具 选择、停止原因和使用数据
  • 流出AnthropicSE事件,来自OpenAI-格式的上游反应
  • 处理API关键路由(为非Anthropic供应商提供XQCaller key travels to ' sk-ant ' 条形键)
  • 在登记册(OpenRouter、Databricks)中拥有接受任何模型名称的通过供应商

PROVIDER Registry'、map model id ()'、convert messages for litellm ()'和to harmic response ()'/`stream message ()'路径是提供者-不可知的。 唯一的Claude特有假设是在发现和验证中.

∮什么挡住它∮

  1. 贝德洛克发现过滤出非Claude型号

ưμ㼯A

[Python] (英语). #后端/立特尔姆.py行~227 如果“ Anthropic” 不在 profile id.lower (): 继续


将“Claude”上的“bedrock profile id()”门正常化:

```(ZZTERM32)
# 后端/ Litellm.py行~330
如果不是配置   id. starts with ("Claude"):
无

`支持 型号()'拒绝非通过提供者的非Claude名称:

[Python]

后端/ 平线 ~ 747

返回“Claude”的型号。 模式( M)


2. 无 " GET/v1/型号 " 终点

(Claude) (英语). 代码通过在 “ANTHROPIC BASE URL”上查询“GET/v1/模型”,发现了代理托管模型。 会议室没有这种终点——OpenAI处理器的`/v1/型号'是向上游的传递,而不是自我服务的清单。 没有这个,非Claude型号不能出现在Claude代码的'/型'拾取器.

以前在#77(`[FEATURE]用于头室包装的动态模型登记册-自动发现可用模型')中曾要求这样做,该登记册提出了同OpenAI兼容的由后端的模型图衍生出"GET/v1/模型"的终点. Copilot路径正在通过#2935获得活的目录发现,但Anthropic/Bedrock代理路径没有等效. 此特性请求包含 # 77 的 “ /v1/ models ” 问及并添加了后端的刻度变化 。

3. 对非Claude目标,扩展思维头没有剥去

Claude代码发送了"Anthropic-β:扩展思考-QQ标题并可能在请求正文中发送"思考". 非Claude型号不懂这些. 当目标模型不是Claude时,代理应该剥去它们,而不是转发并希望上游忽略它们.

□ 建议的解决办法

###
. . . . . . .

内容来源: headroomlabs-ai/headroom