为DeepSOC系统实现了工程师与AI助手的独立对话功能,允许工程师在作战室中直接与AI助手进行交流,获取专业的安全建议和协助,同时保持与多Agent系统的完全隔离。
- 所有消息(Agent消息 + 工程师对话)统一存储在
Message表中 - 通过
message_category字段区分消息类型('agent' / 'engineer_chat') - 确保作战室按时间顺序正确显示所有消息流
- 每个工程师-事件对应一个独立的对话会话
- 通过
chat_session_id管理对话会话 - 支持轮次限制(默认10轮),达到限制后可创建新会话
- 每次对话自动携带最新的事件概要信息
- 检测概要更新并通知AI助手
- 保持对话与事件状态的同步
- 自动获取对话历史(最近10轮)
- 动态检测事件概要变更
- 为AI提供完整的上下文信息
扩展了Message表,添加以下字段:
-- 工程师对话相关字段
message_category VARCHAR(32) DEFAULT 'agent' -- 消息分类
chat_session_id VARCHAR(64) -- 对话会话ID
sender_type VARCHAR(32) -- 发送者类型
event_summary_version VARCHAR(64) -- 事件概要版本- 核心业务逻辑控制器
- 处理对话历史管理
- 实现上下文构建和AI调用
- 确保与Agent系统隔离
POST /api/engineer-chat/send # 发送消息
GET /api/engineer-chat/history # 获取对话历史
POST /api/engineer-chat/new-session # 创建新会话
GET /api/engineer-chat/status # 获取对话状态
- 工程师对话消息自动通过WebSocket广播
- 保持实时通信体验
- 与现有消息流完美集成
- 以
@开头的消息自动识别为工程师对话 - 普通消息继续参与Agent协作
- 智能输入提示和状态反馈
- 工程师问题:右侧显示,蓝色主题
- AI助手回复:左侧显示,绿色主题,支持Markdown渲染
- 与Agent消息清晰区分
- 响应式布局适配
- 科技感视觉风格
- 支持代码高亮和格式化
- 在作战室输入框中输入以
@开头的消息 - 消息将发送给AI助手进行独立对话
- AI助手会基于当前事件上下文提供回复
工程师: @这个安全事件的风险等级如何?
AI助手: 根据当前事件信息,这是一个中等风险的安全事件...
工程师: @建议采取什么应急措施?
AI助手: 基于事件分析,建议采取以下措施:1. 立即隔离...
- 每个会话最多支持10轮对话
- 达到限制时系统提示创建新会话
- 历史对话记录永久保存
- 工程师对话使用独立的Controller和Service
- 通过字段标识区分消息类型
- 不影响Agent系统的业务逻辑
- 独立的API路由和处理逻辑
- 独立的AI调用通道
- 独立的会话管理机制
- 前端明确区分不同类型消息
- 独立的样式和交互逻辑
- 统一的时间线显示
- 现有DeepSOC系统环境
- LLM服务配置(使用现有配置)
- 数据库迁移支持
- 运行数据库迁移:
flask db upgrade - 重启DeepSOC服务
- 功能自动可用,无需额外配置
使用提供的测试工具验证功能:
python tools/test_engineer_chat.py- 自动总结:对话轮次达到限制时自动总结
- 多轮次管理:支持更复杂的会话管理策略
- 个性化设置:支持用户自定义对话参数
- 智能路由:根据消息内容智能判断处理方式
- 配置化的轮次限制
- 可插拔的AI服务提供者
- 自定义上下文构建策略
工程师对话功能成功实现了人机协作的新模式,在保持系统架构清晰的同时,为安全工程师提供了强大的AI助手支持。该功能设计精良,实现完善,为DeepSOC系统的智能化运营提供了重要支撑。