问题描述
在对话页面中选择其他 AI 通道后,主 Agent 会正确使用所选模型,但当人机协同模式
设置为「审计 Agent」时,HITL 审计 Agent 仍然使用系统默认 AI 通道,而不是当前会
话选择的 AI 通道。
例如1:
- 系统默认通道:Qwen /
qwen3.8-max
- 当前会话手动选择:DeepSeek /
deepseek-v4-pro
- 主 Agent:实际使用 DeepSeek
- 审计 Agent:仍然调用系统默认的 Qwen 接口
例如 2:
想要使用 pro 作为渗透模型,flash 作为审计模型,但是发现依旧走的都是 pro
因此,前端显示的会话模型与实际审计请求使用的模型不一致。
环境
- CyberStrikeAI:v1.7.14
- 部署方式:本地运行
- 审批模式:Agent 审查 / 审计 Agent
- AI 协议:OpenAI-compatible
- 浏览器:Chrome
- 系统:macOS
复现步骤
-
在系统设置中配置至少两个不同的 AI 通道,例如:
-
将通道 A 设置为系统默认通道。
-
在对话页面中选择通道 B。
-
将人机协同设置为:
-
发起一个会触发工具调用的任务,例如:
-
查看主 Agent 请求以及审计 Agent 请求实际访问的 API 地址、模型名称或服务端日
志。
预期行为
当对话页面选择了某个 AI 通道时:
- 主 Agent 应使用当前选择的 AI 通道;
- HITL 审计 Agent 也应默认继承当前会话选择的 AI 通道;
- 如果 hitl.audit_model 中显式配置了独立模型,则应优先使用显式配置的审计模型。
也就是说:
当前会话 AI 通道
↓
主 Agent
↓
HITL 审计 Agent
实际行为
当前主 Agent 会使用会话选择的 AI 通道,但 HITL 审计 Agent 仍然使用系统默认通
道。
表现为:
- 前端对话底部显示的是所选模型;
- 主 Agent API 请求使用所选模型;
- 审计 Agent API 请求却使用系统默认模型;
- 审计 Agent 的 Base URL、API Key 和 Model 均可能来自系统默认配置。
初步排查
前端请求会正常发送当前会话选择的通道,例如:
{
"aiChannelId": "deepseek-channel"
}
主 Agent 路径会通过 configForAIChannel 解析该通道,并使用解析后的配置。
但 HITL 审计 Agent 路径仍然使用全局配置:
h.config.Hitl.AuditModelEffective(h.config.OpenAI)
其中 h.config.OpenAI 是启动时应用的系统默认通道配置,没有使用当前请求解析后的
aiChannelId。
因此,问题可能出现在以下调用链之间:
ChatRequest.aiChannelId
↓
configForAIChannel()
↓
主 Agent 使用所选通道
HITL auditAgentReview()
↓
auditLLMConfig()
↓
h.config.OpenAI
↓
始终使用系统默认通道
影响
- 用户无法让不同会话使用不同的审计模型;
- 前端显示的模型与实际审计模型不一致;
- 可能导致审计模型能力、协议兼容性、费用和响应速度不符合预期;
- 如果系统默认模型与会话模型的安全策略不同,可能导致审计结果不一致;
- 调试审计失败时容易误判为当前会话模型的问题。
建议修复
建议将当前请求解析后的有效 AI 通道配置传递给 HITL 审计 Agent。
推荐逻辑:
如果 hitl.audit_model 有显式配置:
使用 hitl.audit_model
否则:
继承当前会话选择的 AI 通道
不要始终从全局的 h.config.OpenAI 获取审计 Agent 配置。
同时建议在审计日志或调试日志中记录以下非敏感字段,方便确认实际调用模型:
- AI channel ID
- provider
- model
- base URL(可脱敏)
- reviewer
- conversation ID
备注
基本都是 AI 自己排查分析得到的结果,所以仅供参考,以您实际为准,但确实存在上述图片说明的问题
本 Issue 关注的是:
会话选择的 AI 通道没有传递给 HITL 审计 Agent
而不是审计模型请求参数兼容性问题。
问题描述
在对话页面中选择其他 AI 通道后,主 Agent 会正确使用所选模型,但当人机协同模式
设置为「审计 Agent」时,HITL 审计 Agent 仍然使用系统默认 AI 通道,而不是当前会
话选择的 AI 通道。
例如1:
qwen3.8-maxdeepseek-v4-pro例如 2:
想要使用 pro 作为渗透模型,flash 作为审计模型,但是发现依旧走的都是 pro
因此,前端显示的会话模型与实际审计请求使用的模型不一致。
环境
复现步骤
在系统设置中配置至少两个不同的 AI 通道,例如:
将通道 A 设置为系统默认通道。
在对话页面中选择通道 B。
将人机协同设置为:
发起一个会触发工具调用的任务,例如:
查看主 Agent 请求以及审计 Agent 请求实际访问的 API 地址、模型名称或服务端日
志。
预期行为
当对话页面选择了某个 AI 通道时:
也就是说:
当前会话 AI 通道
↓
主 Agent
↓
HITL 审计 Agent
实际行为
当前主 Agent 会使用会话选择的 AI 通道,但 HITL 审计 Agent 仍然使用系统默认通
道。
表现为:
初步排查
前端请求会正常发送当前会话选择的通道,例如:
{
"aiChannelId": "deepseek-channel"
}
主 Agent 路径会通过 configForAIChannel 解析该通道,并使用解析后的配置。
但 HITL 审计 Agent 路径仍然使用全局配置:
h.config.Hitl.AuditModelEffective(h.config.OpenAI)
其中 h.config.OpenAI 是启动时应用的系统默认通道配置,没有使用当前请求解析后的
aiChannelId。
因此,问题可能出现在以下调用链之间:
ChatRequest.aiChannelId
↓
configForAIChannel()
↓
主 Agent 使用所选通道
HITL auditAgentReview()
↓
auditLLMConfig()
↓
h.config.OpenAI
↓
始终使用系统默认通道
影响
建议修复
建议将当前请求解析后的有效 AI 通道配置传递给 HITL 审计 Agent。
推荐逻辑:
如果 hitl.audit_model 有显式配置:
使用 hitl.audit_model
否则:
继承当前会话选择的 AI 通道
不要始终从全局的 h.config.OpenAI 获取审计 Agent 配置。
同时建议在审计日志或调试日志中记录以下非敏感字段,方便确认实际调用模型:
备注
基本都是 AI 自己排查分析得到的结果,所以仅供参考,以您实际为准,但确实存在上述图片说明的问题
本 Issue 关注的是:
会话选择的 AI 通道没有传递给 HITL 审计 Agent
而不是审计模型请求参数兼容性问题。