飞书桥接 + AWS Bedrock Provider:Claude 模型被误报为协议不匹配
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 65/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Pouca atividade
- Stack de tecnologia
- typescript
- Domínio
- backend-api-design
Direção de pesquisa
Leia a verificação de modelos Claude em src/lib/bridge/conversation-engine.ts e compare a lista de protocolos permitidos com CLAUDE_CODE_READY_PRESETS em runtime-compat.ts. Verifique como a bridge do Feishu resolve o provedor e o modelo e, em seguida, confirme que os modelos Claude do Bedrock e do Vertex não acionam mais o erro de incompatibilidade, enquanto os protocolos não compatíveis continuam acionando-o.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
问题描述
在飞书桥接(Feishu Bridge)中,将 Provider 配置为 AWS Bedrock(protocol: 'bedrock')并使用 Claude 模型(如 global.anthropic.claude-sonnet-5)时,发送消息会报错:
Error: Provider "AWS Bedrock" uses bedrock protocol but model "global.anthropic.claude-sonnet-5" is an Anthropic model. Please configure the correct provider for this bridge channel.
即使模型 ID 是 Bedrock 上真实存在、可用的模型,该报错依然会触发,无法正常使用。
根因
src/lib/bridge/conversation-engine.ts 附近(约第 183-191 行)有一段 fail-fast 保护逻辑:
const isAnthropicModel = modelLower.includes('claude') || ['sonnet','opus','haiku'].includes(modelLower);
const isNonAnthropicProtocol = !['anthropic', 'openai-compatible', 'openrouter'].includes(resolved.protocol);
if (isAnthropicModel && isNonAnthropicProtocol) {
throw new Error(...);
}
问题在于协议白名单 ['anthropic', 'openai-compatible', 'openrouter'] 里漏掉了 bedrock 和 vertex。而 AWS Bedrock 和 Google Vertex AI 恰恰是官方支持、专门用来托管运行 Claude/Anthropic 模型的两个云协议——这一点可以从代码库自身另一处常量得到印证(runtime-compat.ts):
const CLAUDE_CODE_READY_PRESETS = new Set(['anthropic-official', 'bedrock', 'vertex']);
这里已经明确把 bedrock、vertex 和 anthropic-official 并列,认定它们都是能正常运行 Claude Code 的正规协议。
因此,只要 provider 的 protocol 是 bedrock(或 vertex),并且模型名包含 "claude"/"sonnet"/"opus"/"haiku",这条 guard 就会必定误报,把"协议本来就是用来服务 Anthropic 模型的"错误判断为"协议和模型不匹配"。
复现步骤
- 在 CodePilot 中新建一个 Provider,protocol 选择
bedrock,配置好 AWS 凭证。 - 将该 Provider 设为某个飞书桥接频道/群的默认 Provider,模型填一个真实存在的 Claude 模型 ID(例如
global.anthropic.claude-sonnet-5)。 - 在飞书里给机器人发消息。
- 收到报错:
Provider "AWS Bedrock" uses bedrock protocol but model "..." is an Anthropic model...
建议修复
将 conversation-engine.ts 中的协议白名单补全为:
const isNonAnthropicProtocol = !['anthropic', 'openai-compatible', 'openrouter', 'bedrock', 'vertex'].includes(resolved.protocol);
环境
- CodePilot 桌面版(macOS)
- 触发场景:飞书消息桥接(Feishu Bridge)+ AWS Bedrock Provider
- Linguagem predominante
- TypeScript
- Estrelas
- 6.5k
- Forks
- 697
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de op7418/CodePilot
-
发生错误时提醒Error:successAbertabug P0-crash-or-interrupt
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Effort selector dropdown hidden for GLM models — blocks access to GLM-5.2 High/Max effort tiersAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
-
bug P0-crash-or-interrupt
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
-
无法正常应用内更新Abertabug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
Todas as issues de op7418/CodePilot
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
backnotprop/plannotator#2914 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
microsoft/vscode-containers#655 ·
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
dsh-tauri-desk/deepseek-harness-desktop#1477 · 1 comentário ·