2026-05-28 14:10:48 +08:00
2026-06-17 12:58:18 +08:00
2026-06-17 12:58:18 +08:00

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 次..."
S
Description
No description provided
Readme
99 MiB
0 Stars 1 Watchers 0 Forks
Languages
Python 70.3%
JavaScript 18.8%
CSS 7.7%
HTML 1.6%
Shell 0.9%
Other 0.7%