New Agent App API messages/{id}/suggested returns 400 “Suggested Questions Is Disabled” even when enabled

该报错发生在 Dify 1.16.x 的自托管环境中,当你创建 Agent 模式( mode=agent )应用并开启“回答后建议问题”功能后,通过 Service API 调用 GET /messages/{message_id}/suggested 会返回 400 错误。优先确认你的 Dify

快速结论:该报错发生在 Dify 1.16.x 的自托管环境中,当你创建 Agent 模式(mode=agent)应用并开启“回答后建议问题”功能后,通过 Service API 调用 GET /messages/{message_id}/suggested 会返回 400 错误。优先确认你的 Dify 版本是否为 1.16.0/1.16.1,该问题已被官方标记为 bug,需要升级或等待官方修复。

适用环境:Dify 1.16.0/1.16.1(Issue 中反馈版本为 1.16.1),Self Hosted (Docker) 部署方式。

最快修复方案:暂无确认的一步修复方案。Issue 已确认为 Dify 代码缺陷,需要官方在 MessageService.get_suggested_questions_after_answer() 方法中新增对 AppMode.AGENT 模式的独立处理分支。

注意事项:该问题仅影响 Agent 模式应用,Chat 和 Agent Chat 模式不受影响。如果你急需该功能,可以考虑将应用改用 Agent Chat 模式,但这可能改变 Agent 行为,并非官方推荐方案。

问题场景

在 Dify 1.16.x 自托管环境中,用户创建了一个新的 Agent 模式(mode=agent)应用,并在功能面板中启用了“回答后建议问题”(Suggested Questions After Answer)。发布应用后,通过 Service API 发送聊天消息创建会话,然后使用返回的 message_id 调用 GET /messages/{message_id}/suggested 获取推荐问题列表,但 API 返回 400 错误。

报错原文

{"code": "bad_request", "message": "Suggested Questions Is Disabled.", "status": 400}

原因分析

这是 Dify 1.16.x 的一个已确认 bug。根本原因在于 api/services/message_service.py 文件中的 MessageService.get_suggested_questions_after_answer() 方法缺少对 Agent 模式(AppMode.AGENT)的独立代码分支。

该方法目前只有两个分支:

  • ADVANCED_CHAT 模式:从工作流应用配置中读取功能开关。
  • 其他所有模式(包括 AGENT:回退到旧的 AppModelConfig 路径。

Agent 应用不使用 AppModelConfig 存储功能配置,而是存储在 AgentSoulConfig.app_features.suggested_questions_after_answer 中。当代码进入回退分支时,从错误的配置源读取,判断功能未启用,抛出 SuggestedQuestionsAfterAnswerDisabledError 异常,控制器将其转换为 400 响应。

环境排查

  • 检查 Dify 版本:确认是否为 1.16.0 或 1.16.1(Issue 中反馈版本为 1.16.1)
  • 确认应用模式:在应用详情页中确认 mode 是否为 agent
  • 确认功能开关:在应用的功能面板中确认“回答后建议问题”已开启
  • 检查部署方式:确认是否为 Self Hosted (Docker) 部署

解决步骤

  1. 确认你使用的 Dify 版本是否为 1.16.0 或 1.16.1(可在 docker-compose.yml 或部署配置中查看镜像标签)。
  2. 检查 GitHub 仓库的 Releases 页面,确认是否有包含此修复的新版本发布(例如 1.16.2 或更高版本)。如果有,升级 Dify 到修复版本。
  3. 如果暂时无法升级,并且该功能对你的 Agent 应用至关重要,可优先尝试将应用模式切换为 Agent Chat(agent-chat)模式,验证该模式下 suggested API 是否正常工作。注意:这可能会改变 Agent 的工作方式,需要重新测试应用行为。
  4. 如果以上方案都不可行,建议关注原始 Issue 的进展,等待官方发布修复补丁。

验证方法

升级到修复版本后,按照复现步骤重新操作:创建一个新的 Agent 应用 → 开启“回答后建议问题” → 发布应用 → 通过 Service API 发送消息 → 使用返回的 message_id 调用 GET /messages/{message_id}/suggested。如果 API 返回 200 状态码和推荐问题列表,则说明修复生效。

参考来源

langgenius/dify #39681

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 19182

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注