mirror of
https://github.com/justlovemaki/AIClient-2-API.git
synced 2026-04-26 01:45:56 +03:00
[GH-ISSUE #311] 反代理在 CherryStudio 中可以正常工作,但在 Cline 和 Claude Code 中请求失败,返回 400 错误 "Improperly formed request"。 #225
Labels
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/AIClient-2-API-justlovemaki#225
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @yangyiting434633-lgtm on GitHub (Feb 6, 2026).
Original GitHub issue: https://github.com/justlovemaki/AIClient-2-API/issues/311
问题描述 / Problem Description
反代理在 CherryStudio 中可以正常工作,但在 Cline 和 Claude Code 中请求失败,返回 400 错误 "Improperly formed request"。
The proxy works correctly with CherryStudio but fails with Cline and Claude Code, returning 400 error "Improperly formed request".
环境信息 / Environment
claude-kiro-oauth客户端兼容性 / Client Compatibility
/v1/chat/completions(OpenAI)/v1/chat/completions(OpenAI)/v1/messages?beta=true(Claude)日志对比分析 / Log Comparison
CherryStudio (成功)
Cline (失败)
[Kiro] No tools provided或任何 tools 处理日志Claude Code (失败)(注:这一部分报错是我自己尝试修改代码后的报错日志,但问题仍未得到解决,所以请着重Cline的报错)
错误响应 / Error Response
AWS API 返回的错误:
错误类型:
ValidationException关键发现 / Key Findings
CherryStudio 成功的原因:没有发送 tools,代码自动添加了 placeholder tool
Cline 失败的可能原因:
{ function: { name, description, parameters } }Claude Code 失败的可能原因:
toolSpecification)buildCodewhispererRequest方法可能没有正确处理已经是 Kiro 格式的 tools请求头信息 / Request Headers
失败请求的 headers:
相关代码 / Relevant Code
src/converters/strategies/OpenAIConverter.js-toClaudeRequest方法中的 tools 转换(约第 268 行)src/providers/claude/claude-kiro.js-buildCodewhispererRequest方法中的 tools 处理复现步骤 / Steps to Reproduce
claude-kiro-oauthprovider期望行为 / Expected Behavior
反代理应该能够正确处理来自不同客户端的请求,包括:
@justlovemaki commented on GitHub (Feb 8, 2026):
你可以开启AI监控,导出日志分析下
Improperly formed request 就是参数问题
Cline 直接使用claude协议,没必要转
Claude Code 我这边没有报错,无法修复
@yangyiting434633-lgtm commented on GitHub (Feb 8, 2026):
找到问题了,在工具调用中cline传递了一个描述未空的工具,导致了kiro不接受这个描述为空的工具引发报错。我不知道这个是cline本身的问题还是软件转换格式引发的错误,总之我在代码中添加了tool的不为空判断,再次使用软件便可以在cline和claudecode中正常使用。