Commit Graph

19 Commits

Author SHA1 Message Date
6087066a91 调低 temperature=0.1,减少大模型胡编乱造
涉及三处 LLM 调用:
- LangGraph Agent 对话(graph.py)
- VLM 图片分析(agent_dispatcher.py)
- VLM 告警复核(vlm_service.py)
2026-03-25 14:20:19 +08:00
836ced9270 移除 Legacy FC 模式,只保留 LangGraph
删除 USE_LANGGRAPH 开关、_legacy_chat、_legacy_execute_tool、
_get_legacy_tools 等全部旧代码,agent_dispatcher 精简为纯
LangGraph 入口适配层。
2026-03-25 13:56:24 +08:00
8156f54004 重构 Agent:引入 LangGraph StateGraph 替代手写 FC 循环
架构变更:
- 新增 app/services/agent/ 模块(state/prompts/graph/tools)
- 7 个工具从 _tool_xxx 方法提取为 @tool 装饰器函数
- 构建 assistant + ToolNode 的 ReAct 图
- agent_dispatcher.py 改为薄壳入口,支持 USE_LANGGRAPH 开关
- MemorySaver checkpoint 持久化对话(thread_id=wechat-{user_id})
- 新增依赖:langchain-core, langchain-openai, langgraph

向后兼容:
- USE_LANGGRAPH=false 可切回旧版 FC 循环
- LangGraph 初始化失败自动降级到 Legacy 模式
- 企微图片处理/VLM分析逻辑不变
2026-03-25 13:52:55 +08:00
d1aa14bb23 修复 submit_order_result 缺少告警存在性检查
LLM 传错 alarm_id 时 handle_alarm 静默返回 None,
但函数仍返回 success:true 误导用户。添加前置检查。
2026-03-25 12:41:47 +08:00
eb2d74bd4c 修复 Agent 对接 IoT 工单平台:状态同步、图片持久化、roiId 字段
1. agent_dispatcher: IoT 成功与否都更新本地告警状态,不再依赖回调同步
2. agent_dispatcher: submit_order_result 持久化图片 URL 到 alarm_event_ext
3. work_order_client: create_order 添加 roi_id/source_type 参数
4. notify_dispatch: 创建工单时传 scene_id 作为 roiId
2026-03-25 12:37:00 +08:00
0f27caf0b5 修复:摄像头名称显示全链路修复
- config.py: 简化 CameraNameConfig,删除 display_format/name_field_priority
- camera_name_service.py: 重写名称解析,固定优先级 cameraName→gbName→device_id,
  删除废弃的 app/stream 格式解析和 extract_name 方法
- yudao_aiot_alarm.py: 删除 stream→cameraId 的错误映射,cameraId 直接用 device_id
- agent_dispatcher.py: query_camera 删除技术字段返回,list_my_orders 添加摄像头名称解析
2026-03-24 13:38:45 +08:00
fbdd340a8e 修复:Agent禁用markdown语法 + 告警详情自动发送截图图片
- 系统提示词禁止markdown图片语法,企微不支持渲染
- 告警详情查询时截图自动通过企微图片消息发送
- 工具返回中用has_snapshot替代snapshot_url,避免模型输出链接
2026-03-24 11:50:54 +08:00
731a6d631c 重构:Agent升级为Qwen3.5-Plus Function Calling架构
- config: AgentConfig新增model(qwen3.5-plus)和timeout(30s)字段
- agent_dispatcher: 完全重写,替换意图标记为原生FC,实现7个工具
  (query_alarm_stats/list_alarms/get_alarm_detail/update_alarm_status/
   list_my_orders/submit_order_result/query_camera)
- session_manager: 移除waiting_location/waiting_confirm状态,新增pending_images
- wechat_service: 禁用H5跳转,card_action移除URL,step2提示改为对话框操作
- wechat_callback: 图片消息智能路由(有待处理工单→暂存,无→VLM分析)
2026-03-24 11:17:12 +08:00
6bc71a9991 修复:Agent意图识别优先于位置状态机,防止查询被误判为位置
- 新增 _looks_like_new_intent() 方法,识别查询/取消等明确非位置意图
- 收紧 _looks_like_location() 规则,去掉2-30字的宽松兜底,必须包含位置关键词
- waiting_location 状态下先判断新意图,再判断位置,最后兜底退出状态机
- 修复「今天有多少告警」被当成位置信息创建工单的问题
2026-03-23 15:01:48 +08:00
101a99616e 修复:图片分析prompt增加离岗识别 + 创建工单支持直接带位置
1. IMAGE_ANALYZE_PROMPT 增加"岗位无人值守"等异常类型
2. create_work_order 意图支持直接提取 location,有位置则跳过追问
3. 减少图片+文字同时发送时的消息顺序混乱
2026-03-20 14:11:36 +08:00
a79c829d3e 修复:list_alarm 中文参数映射,VLM 传中文类型/状态时自动转换为英文编码 2026-03-20 13:57:27 +08:00
bcb625782c 修复:f-string 中文引号语法错误导致启动失败 2026-03-20 13:50:06 +08:00
266bda1512 功能:Agent 新增 list_alarm 意图,支持展示具体告警列表
- query_alarm:统计概况(多少条、按类型分布)
- list_alarm:具体列表(类型+摄像头+状态+时间,最多10条)
- 支持按状态过滤(如"未处理的告警有哪些")
- 超过10条提示导出报表
2026-03-20 11:36:33 +08:00
1fb00f8a30 修复:意图查询时丢弃 VLM 编造的回复,只返回真实数据
VLM 会先编一个假答案再附加意图标记,导致用户看到矛盾的信息。
现在检测到意图标记后直接执行真实查询,不拼接 VLM 的回复。
2026-03-20 11:32:42 +08:00
5ccfe7752f 修复:Agent 对话体验优化
1. System Prompt 优化:不再把无关闲聊强行关联工单
2. waiting_location 状态机加位置判断:
   - 用户回复像位置信息 → 创建工单
   - 用户回复问句/闲聊 → 退出状态机回到正常对话
3. 新增 _looks_like_location() 方法判断文本是否像位置
2026-03-20 11:31:41 +08:00
f87222e6fb 功能:AgentDispatcher 多模态重写
- 统一使用 VLM 模型处理文字+图片
- 多轮对话上下文(SessionManager)
- 图片分析上报:VLM 分析 → 追问位置 → 创建工单
- 结单图片分析:VLM 确认异常消除 → 自动结单
- 意图识别嵌入对话回复中,不再单独调用
- 所有模型配置走 settings,无硬编码
2026-03-20 11:10:54 +08:00
10b25742f8 fix: 剩余服务文件时间统一为北京时间
- agent_dispatcher、alert_service、report_generator、
  oss_storage、work_order_service 全部使用 beijing_now()
- 全局无遗留 UTC 时间调用

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 16:29:28 +08:00
ce5272413b fix: 修复通知日志不可见问题
- notify_dispatch/agent_dispatcher 改用主logger(alert_platform)
- edge_compat 异常不再静默吞掉,输出错误日志

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 11:22:06 +08:00
7cc4f604d0 feat: 交互Agent + VLM优化 + 企微演示模式
- 新增交互Agent调度器(意图识别 + 工单/查询/报表/闲聊4个Handler)
- 新增工单服务、Excel报表生成器、企微消息加解密模块
- VLM提示词优化(角色设定、≤25字描述、布尔值优先输出)
- VLM降级策略(入侵默认放行、离岗默认拦截)
- 企微演示模式(WECHAT_TEST_UIDS兜底 + SERVICE_BASE_URL修复)
- 新增Agent回调路由和测试接口

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 10:42:32 +08:00