Sub-agent custom model bug

Sub-agent custom model bug 发生在 LobeChat 的 callSubAgent 流程中,子代理配置的自定义模型会被父主题固定的模型(topic-pinned model)覆盖。优先排查 execAgent 中主题固定模型逻辑是否无条件覆盖了显式传入的模型参数。

快速结论:Sub-agent custom model bug 发生在 LobeChat 的 callSubAgent 流程中,子代理配置的自定义模型会被父主题固定的模型(topic-pinned model)覆盖。优先排查 execAgent 中主题固定模型逻辑是否无条件覆盖了显式传入的模型参数。

适用环境:LobeChat V1.0.13,Web(桌面浏览器 Firefox)和移动端(React Native),操作系统为 iOS。Issue 未提供 Python、CUDA、显卡等环境信息。

最快修复方案:暂无确认的一步修复方案。Issue 中提出了代码修复建议,但该方案尚未验证通过,需等待官方发布修复版本或自行应用补丁测试。

注意事项:当前 Issue 标记为 “unconfirm”,提出的修复建议属于推理方案,未经过官方验证。修改 execAgent 代码后需完整测试子代理调用,确保不影响正常的主代理模型固定功能。

问题场景

在 LobeChat 中使用子代理(Sub-agent)功能时,用户在 agencyConfig.subagent 中配置了与其他模型不同的子代理模型(例如配置了 claude-opus-4-6-thinking-c),但实际调用 callSubAgent 时,子代理运行的却是父主题固定的模型(例如 gpt-5.6-sol)。该问题在 Web 桌面浏览器和移动端均能复现。

报错原文

Sub-agent custom model bug

Actual Runtime Evidence:
operation.metadata.agentConfig.model: claude-opus-4-6-thinking-c
operation.metadata.agentConfig.provider: cometapi
operation.metadata.modelRuntimeConfig.model: gpt-5.6-sol
operation.metadata.modelRuntimeConfig.provider: newapi
operation.currentState.cost.llm.byModel: newapi/gpt-5.6-sol

原因分析

问题根源在 apps/server/src/services/aiAgent/index.tsexecAgent 函数中。当函数执行时,会无条件加载主题(topic)固定的模型并覆盖 modelprovider 变量,没有检查这些参数是否由调用方显式传入。子代理的模型虽然能正确从 agencyConfig.subagent 解析并传递给 execAgent,但随后被主题固定模型逻辑覆盖。

这不是提供商 fallback 机制导致的——运行记录显示只有 1 次 LLM API 调用、无错误、无重试、无 provider 错误事件,说明子代理配置的模型从未被请求。

环境排查

  • 确认 LobeChat 版本是否为 V1.0.13 或存在相似问题的版本
  • 检查父主题是否固定了模型(topic-pinned model),即主题创建或更新时是否指定了特定模型
  • 检查 agencyConfig.subagent 配置是否正确保存并传递
  • 确认子代理配置的模型/提供商在系统中是否有效

解决步骤

  1. 在 LobeChat 管理界面检查父主题的模型设置,确认是否存在固定的模型。
  2. 对比 agencyConfig.subagent 配置的模型与父主题固定模型是否不同。
  3. 查看运行日志,确认子代理操作(operation)的 agentConfigmodelRuntimeConfig 中的模型信息不一致。
  4. 如果自行部署 LobeChat,可尝试修改 apps/server/src/services/aiAgent/index.tsexecAgent 的主题固定模型逻辑,添加守卫条件:仅在未传入显式模型/提供商覆盖参数时才应用主题固定模型。该修复方案尚未验证,可优先尝试。
  5. 如为云端服务,等待官方发布修复版本。

验证方法

配置父代理使用模型 A,子代理配置为模型 B(两者不同),然后调用 callSubAgent。检查子代理操作的运行元数据:如果 modelRuntimeConfig.modelcost.llm.byModel 显示的是模型 B 而非模型 A,则说明修复生效。

参考来源

lobehub/lobe-chat #17511

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18593

发表回复

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