![[BUG/FEAT]: AWS Bedrock reasoning models with `@agent`](https://www.chat-gpts.plus/wp-content/uploads/2026/06/3553-34b5ec69.jpg)
[BUG/FEAT]: AWS Bedrock reasoning models with `@agent`
快速结论:该报错出现在 AnythingLLM 中使用 AWS Bedrock 推理模型(如 Claude Sonnet/Opus)调用 `@agent` 功能时。优先排查 Bedrock 推理令牌处理代码是否被剥离 reasoning_content,或确认模型返回的 content 格式是否为数组而非字符串。
问题场景
用户在 AnythingLLM 中配置 AWS Bedrock 提供方,使用推理模型(如 Claude 3.5、Claude 3.7、Nova Pro、Llama 3 70B 等)并通过 @agent 发起单次 Agent 聊天。问题在未使用 LangChain 的 Bedrock 重构后出现,所有版本均受影响。部分用户通过 Docker 托管在 AWS EC2 上,使用 IAM 角色权限。
报错原文
jsonString?.startsWith error
Invalid message content: empty string. 'ai' must contain non-empty content.
AWSBedrock::streamGetChatCompletion failed during setup. Bedrock is unable to process your request.
Bedrock is unable to process your request.
原因分析
可能原因:
- Bedrock 重构移除了 LangChain 依赖,导致推理模型返回的
content是数组而非字符串,LangChain 无法正确处理,进而抛出jsonString?.startsWith错误。 - 推理令牌处理代码在重构过程中被破坏,
reasoning_content被剥离,影响所有返回推理令牌的模型(包括 Cerebras、DeepSeek 等)。 - 部分模型(如 DeepSeek)在 Bedrock 上可能存在兼容性问题,即使 IAM 权限正确也无法正常工作。
环境排查
- 确认 AnythingLLM 版本(问题出现在 1.12.0 及之后版本,重构 PR #3537)。
- 确认使用的 Bedrock 模型类型(推理模型如 Claude 3.5/3.7、Nova Pro 等 vs 非推理模型如 Grok)。
- 检查 AWS IAM 角色权限是否允许
bedrock:*(用于排除权限问题)。 - 确认部署方式:Docker(AWS EC2)或桌面版。
解决步骤
- 临时规避方案:不要对 AWS Bedrock Agent 执行使用推理模型,因为
content响应是数组而非字符串。改用非推理模型(如 Grok)可正常返回。 - 应用补丁(可优先尝试):使用社区补丁修复推理令牌处理。补丁修改了
stream.js和responses.js中的令牌处理代码。- 桌面版:下载一键补丁工具 https://github.com/heihei999/anythingllm-reliable/releases
- Docker 版:拉取修复镜像
docker pull ghcr.io/heihei999/anythingllm-reliable:latest
- 确认 PR #3714 修复:该 PR 声称已解决此问题,尝试使用最新代码构建或等待正式合并发布。
- 测试不同模型:先用 Grok 等非推理模型作为控制组,确认
@agent功能本身可用,再逐一测试推理模型定位问题模型。
验证方法
通过 @agent 向 Bedrock 推理模型发送一条聊天消息,若能正常返回非空响应且无 jsonString?.startsWith 或 'ai' must contain non-empty content 错误,则问题解决。使用非推理模型作为控制组验证系统基线正常。



![[推广] 你还在为 AI 模型价格高、渠道不稳定、接口切换麻烦头疼吗?](https://www.chat-gpts.plus/wp-content/uploads/2026/06/ai_cover_3-722-768x403.jpg)