Files
iot-device-management-service/app/services/agent/tools/camera_tools.py
16337 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

22 lines
565 B
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
摄像头查询工具
"""
import json
from langchain_core.tools import tool
from .alarm_query import _get_camera_display_name
@tool
def query_camera(camera_id: str) -> str:
"""查询摄像头信息(名称、位置、状态等)
Args:
camera_id: 摄像头IDdevice_id
"""
name = _get_camera_display_name(camera_id)
if name and name != camera_id:
return json.dumps({"camera_id": camera_id, "name": name}, ensure_ascii=False)
return json.dumps({"error": f"未找到摄像头: {camera_id}"}, ensure_ascii=False)