Views
No views yet
cd travel-agent1sudo apt install curl
2curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
3sudo apt install nodejs bubblewrap -y
4npm install @anthropic-ai/sandbox-runtime
5
6uv syncuv run python main.pyDockerfile,可直接部署到 Hugging Face Docker Spaces、Render、Railway 等支持容器的平台。公网环境会默认关闭 Shell 工具、限制文件读取范围,并对单个访问来源做基础限流。1DEEPSEEK_API_KEY=你的新密钥
2EMBEDDING_API_KEY=你的新密钥1AMAP_MCP_URL=
2RAILWAY_MCP_URL=
3WEB_SEARCH_MCP_URL=1docker build -t travel-agent .
2docker run --rm -p 7860:7860 --env-file .env travel-agent1sudo apt update
2sudo apt install -y mysql-server redis-server rabbitmq-serversystemctl:1sudo systemctl enable mysql redis-server rabbitmq-server
2sudo systemctl start mysql redis-server rabbitmq-serversystemctl 不可用,使用:1sudo service mysql start
2sudo service redis-server start
3sudo service rabbitmq-server startsudo mysql1CREATE DATABASE IF NOT EXISTS travel_agent CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
2CREATE USER IF NOT EXISTS 'travel_agent'@'localhost' IDENTIFIED BY 'travel_agent';
3GRANT ALL PRIVILEGES ON travel_agent.* TO 'travel_agent'@'localhost';
4FLUSH PRIVILEGES;
5EXIT;1mysql -u travel_agent -ptravel_agent -e "SHOW DATABASES;"
2redis-cli ping
3sudo rabbitmqctl statusmysql -u travel_agent -ptravel_agent -e "SHOW DATABASES;" 正常应该返回:redis-cli ping 正常应返回:
PONGsudo rabbitmqctl status 正常返回的内容应包含
Status of node rabbit@xxx
Runtime.env1MYSQL_ENABLED=true
2REDIS_ENABLED=true
3RABBITMQ_ENABLED=trueuv syncuv run python main.pyuv run python industrial_worker.py1sudo service mysql start
2sudo service redis-server start
3sudo service rabbitmq-server startuv run python main.py天安门到颐和园怎么走
2026-04-15北京到上海火车票有余票吗
搜索关于codex的新闻,总结返回的第一篇文章
计算123+456
总结对话历史
使用skill获取上海天气
调用skill制定南京一人一日游攻略,预算500BACKEND_WORKERS=4 AGENT_LLM_CONCURRENCY=10 AGENT_MCP_TOOL_CONCURRENCY=10 uv run python backend.py1BACKEND_WORKERS=4
2AGENT_LLM_CONCURRENCY=20
3AGENT_MCP_TOOL_CONCURRENCY=20
4AGENT_SYNC_CONTENT_DELAY=0
5AGENT_STREAM_CONTENT_DELAY=0.02
6AGENT_EVAL_SESSION_POOL_SIZE=10
7AGENT_EVAL_PREWARM=trueBACKEND_WORKERS:后端进程数;大于 1 时每个 worker 都有独立内存中的 Agent 缓存。AGENT_LLM_CONCURRENCY:单进程内主 Agent 和 SubAgent 共享的 LLM 并发上限,0 表示不限制。AGENT_MCP_TOOL_CONCURRENCY:单进程内 MCP 工具调用并发上限,0 表示不限制。AGENT_SYNC_CONTENT_DELAY:/chat 非流式接口的最终答案输出延迟,评测默认 0。AGENT_STREAM_CONTENT_DELAY:/chat/stream 的逐字输出延迟,前端默认保留 0.02 秒。AGENT_EVAL_SESSION_POOL_SIZE:promptfoo provider 使用的固定评测会话池大小,建议不小于 promptfoo 并发数。AGENT_EVAL_PREWARM:是否在第一批评测请求前调用 /session/init 预热会话池。user_id/session_id 不建议并发跑多轮任务;高并发评测应让每条请求使用独立会话,或确保测试会话池大小不小于并发数。sandbox-runtime 沙箱方案,用于文件权限和网络权限隔离。.srt-settings.jsonmain.py:项目启动入口,负责启动 FastAPI 后端和 Gradio 前端。backend.py:FastAPI 后端服务,负责会话接口、聊天流式接口、任务停止、任务恢复等。gradio_manager.py:Gradio 前端界面,负责页面初始化、会话列表、聊天框、进度展示、归档情况刷新、停止按钮等交互。session_manager.py:管理不同用户、不同会话对应的 Agent 实例。START -> llm -> tool -> llm -> ... -> ENDllm 节点负责思考下一步,决定是否需要调用工具。tool 节点负责执行本地工具、MCP 工具或 SubAgent。tool_guard.py 会在工具真正执行前处理参数 schema 校验、重复调用拦截、失败计数和 MCP 重试分类。用户问题 -> LLM 判断需要路线工具 -> 调用高德 MCP -> 得到路线结果 -> LLM 整理中文答案memory/{user_id}/sessions/{session_id}/session.jsonl。memory/{user_id}/sessions.json。MEMORY.md 和 HISTORY.md。HISTORY.md / MEMORY.md,再更新 last_consolidated 指针。RABBITMQ_ENABLED=true,自动记忆整合会进入 RabbitMQ 后台队列;后台 Worker 整合完成后,Gradio 更新“本会话归档情况”。1├── config.py # 环境配置,包括模型、Embedding、MCP、MySQL、Redis、RabbitMQ 等配置
2├── main.py # 主程序入口,启动 FastAPI 后端和 Gradio 前端
3├── backend.py # FastAPI 后端服务,处理前端请求并调用对应会话的 Agent
4├── gradio_manager.py # Gradio 界面管理,提供 Web 交互界面
5├── travel_agent.py # Agent 核心逻辑,定义 LLM 推理、工具调用、任务恢复、记忆管理等
6├── session_manager.py # 会话管理器,管理多个用户的独立 Agent 实例
7├── session_store.py # 会话数据存储,管理 JSONL 会话文件、索引和长期记忆文件
8├── industrial_runtime.py # MySQL、Redis、RabbitMQ 适配层,记录 run、steps、checkpoint 和后台任务
9├── memory_manager.py # 向量历史存储管理,处理对话历史的向量化和检索
10├── memory_consolidator.py # 记忆整合器,将对话历史压缩整合到长期记忆文件
11├── skills_loader.py # 加载和管理 Skill 能力
12├── mcp_client.py # MCP 客户端,建立 SSE 连接并获取工具描述
13├── mcp_server.py # 本地 MCP 服务端,定义本地 MCP 工具
14├── subagents.py # 子 Agent 系统,支持复杂任务委派
15├── tools/ # 本地工具模块目录
16├── skills/ # Skill 目录
17├── tests/ # pytest 测试,分为 unit、integration、full
18├── observability.py # Langfuse 初始化、请求级追踪等逻辑
19├── .srt-settings.json # 沙箱配置文件
20├── pyproject.toml # 项目依赖配置
21└── uv.lock # uv 锁文件1uv run pytest -m unit
2uv run pytest -m integration
3uv run pytest -m fulluv run pytest -m full --cov-report=htmlunit:单元测试,覆盖会话存储、Skill 加载、本地工具、Agent 解析/checkpoint、SubAgent、运行时纯函数等。integration:集成测试,覆盖 FastAPI、用户访问/会话创建/切换/刷新恢复、停止任务、多用户隔离、Agent 流式流程、本地 MCP/SSE、Skill、SubAgent、token 超限自动归档、Gradio 进度/归档刷新等;如果当前已连接 MySQL、Redis、RabbitMQ,会测到这些中间件的相关代码。full:完整测试集合,包含全部 unit 和 integration 测试。/chat/eval 轻量接口1cd eval
2promptfoo eval --max-concurrency 10 --no-table --repeat=2eval/promptfooconfig.yaml 默认 evaluateOptions.maxConcurrency 为 10,sessionPoolSize 也为 10promptfoo view.env 或 config.py 填写:1LANGFUSE_PUBLIC_KEY=pk-lf-...
2LANGFUSE_SECRET_KEY=sk-lf-...
3LANGFUSE_BASE_URL=https://us.cloud.langfuse.comLANGFUSE_PUBLIC_KEY 或 LANGFUSE_SECRET_KEY 时,监控会自动关闭,不影响本地运行。配置完成后,主 Agent、子 Agent、记忆整合、本地 MCP 摘要和 embedding 调用会按现有 session_id 聚合到 Langfuse 的 session 视图中。