8befbacd658edb8a91c51d3b14d86a5d990faefc
Agent Web Chat
基于 LangGraph 的多模态对话 Agent,支持文本、图片、音频、多种类型文件输入,具备屏幕截图、浏览器控制、RAG 知识库、数据库查询、本地文件获取等工具调用能力。
快速开始
1. 克隆仓库并进入项目目录
git clone <your-repo-url>
cd Agent
Windows:
bash
python -m venv myenv
.\myenv\Scripts\activate
macOS / Linux:
bash
python -m venv myenv
source myenv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
pip install -e .
gedit .env
必须填写的变量:
LLM_BASE_URL – 大模型 API 基础地址
LLM_API_KEY – API 密钥
LLM_MODEL – 模型名称(如 Qwen/Qwen2.5-72B-Instruct)
TTS_BASE_URL – 文本转语音服务地址(可选,若不使用音频回复可不填)
ASR_BASE_URL – 语音识别服务地址(可选)
RAG_BASE_URL – RAG 嵌入与重排序服务地址(可选)
# 启动 Web 对话服务(推荐)
# 确保在 Agent 目录下,且 PYTHONPATH 包含 src 目录
cd ./Agent
export PYTHONPATH=src:$PYTHONPATH # Linux/macOS
# 或 Windows PowerShell: $env:PYTHONPATH="src;$env:PYTHONPATH"
uvicorn web.server:app --host 0.0.0.0 --port 8765
# (可选)通过 Cloudflare Tunnel 暴露公网
cloudflared tunnel --url http://localhost:8765
# 进入项目目录并提交代码(Windows 下路径为 .\Agent\)
✅ 推送到公司
powershell
# 进入项目目录
cd Agent
# 暂存所有修改
git add .
# 提交修改(请替换双引号里的内容为实际说明)
git commit -m "修改内容的说明"
# 默认推送到公司
git push
🌐 推送到个人 GitHub
powershell
# 进入项目目录
cd Agent
# 暂存所有修改
git add .
# 提交修改(请替换双引号里的内容为实际说明)
git commit -m "修改内容的说明"
# 显式指定推送到个人仓库 (minor)
git push minor master
###循环检测
用户输入 → runtime.py 重置循环状态
→ graph.invoke 开始执行
│
├─ agent 节点 (nodes.py / call_model)
│ ├─ _build_reflection_prompt()
│ │ ├─ check_and_record_todolist_progress() ← todolist 停滞检测
│ │ │ └─ 10轮无进展 → 注入反思提示:"请反思当前卡点..."
│ │ │
│ │ └─ build_loop_reflection_prompt()
│ │ └─ detect_repeated_tool_calls() ← 连续相同工具检测
│ │ └─ 连续3次 → 注入反思提示:"你已连续多次调用同一工具..."
│ │
│ └─ LLM 调用(带反思提示引导)
│
├─ routing 节点 (routing.py / should_continue)
│ └─ should_force_end()
│ └─ 连续5次相同工具+相同参数 → 返回 END,强制终止
│
└─ 图结束后 (runtime.py / execute_agent)
└─ 检测到强制终止 → 向前端输出:
"检测到异常循环,工具 `xxx` 已连续调用 5 次..."
Languages
Python
70.3%
JavaScript
18.8%
CSS
7.7%
HTML
1.6%
Shell
0.9%
Other
0.7%