02 · 项目总览与 5 分钟跑起来

一、这个项目到底干什么

一句话:让业务同事用大白话问数据和制度,Agent 自己去查、去算、去核对,最后给出带出处的答案;遇到危险动作会先停下来等人点头。

三个典型场景:

用户问 Agent 做什么 用到的能力
"P0 缺陷多久必须修复?" 检索《缺陷分级与处理规范》→ 组织答案 → 标注出处 RAG + 引用溯源
"本月各项目成本排名前 5?" 生成 SQL → 只读校验 → 查 BI 库 → 生成结论 Text2SQL + 护栏
"把超支 20% 的项目告警推到值班群" 查数据 → 中断 → 等人工点确认 → 推送 多步编排 + HITL

二、架构图

sql 复制代码
┌────────────────────────────────────────────────────────────┐
│  Vue3 工作台:对话流 / 执行链路时间线 / 引用溯源 / 确认卡片   │
└───────────────▲────────────────────────────────────────────┘
                │ SSE: token / plan / tool_start / tool_end
                │      / reflect / hitl / final / llm_usage
┌───────────────┴────────────────────────────────────────────┐
│  API 层  FastAPI(Python) / Spring Boot(Java)             │
└───────────────▲────────────────────────────────────────────┘
┌───────────────┴────────────────────────────────────────────┐
│  Agent 编排                                                  │
│   Plan ──▶ Execute ──▶ Reflect ──▶(不够则回到 Execute)     │
│                  │                                           │
│           ToolRegistry(Function Calling)                   │
└────────┬─────────┴──────────┬──────────────┬────────────────┘
         ▼                    ▼              ▼
    RAG 检索            BI 数据(SQL)     告警推送(HITL)
   向量 + BM25          只读校验          计算器 / 日期
   RRF + Rerank         报错回炉

横切:Guardrails · Memory(窗口+摘要) · Tracer(Span/Token) · LLM适配(重试+降级)

三、目录结构

bash 复制代码
enterprise-agent-platform/
├── run_all.bat          # 一键启动(后端+前端)
├── run_python.bat       # 只启动后端
├── run_web.bat          # 只启动前端
├── docker-compose.yml   # PG(pgvector) + Redis + API
├── server-python/
│   ├── .env             # 配置(已填好 DeepSeek)
│   ├── app/
│   │   ├── config.py            # 配置中心(自动加载 .env)
│   │   ├── llm/                 # LLM 适配 / Prompt 模板
│   │   ├── rag/                 # 切分 / embedding / 向量库 / 检索
│   │   ├── agent/               # 状态 / 编排 / 工具 / 护栏 / 记忆
│   │   ├── observability/       # Tracer
│   │   ├── api/routes.py        # SSE 对话等接口
│   │   └── main.py
│   ├── data/knowledge/          # 知识库(3 篇制度文档)
│   ├── scripts/init_bi_db.py    # 生成 BI 演示库
│   └── tests/                   # 11 个用例
├── server-java/                 # Spring Boot + LangChain4j
├── web/                         # Vue3 前端
├── docs/                        # 岗位对标 / 架构 / 简历 / 面试
└── blog/                        # 本系列

四、5 分钟跑起来

方式一:双击 run_all.bat(推荐)

会自动开两个窗口:

方式二:手工

powershell 复制代码
# 后端
cd enterprise-agent-platform\server-python
$env:PYTHONPATH="$PWD"
python -m uvicorn app.main:app --port 8000

# 前端
cd ..\web
npm install && npm run dev

方式三:Docker

bash 复制代码
docker compose up -d --build

五、没有 API Key 也能跑(Mock 设计)

这是我最满意的一个设计。项目内置两个"离线兜底":

1)MockLLM ------ 规则式假模型

python 复制代码
class MockLLM(BaseLLM):
    def _as_json(self, q):
        if any(h in q for h in ("成本", "缺陷", "排名", ...)):
            steps.append({"tool": "sql_query", "args": {...}})
        return json.dumps({"thought": ..., "steps": steps})

能根据问题关键词输出合法的 JSON 计划,让 Plan→Execute→Reflect 完整走通。

2)HashingEmbedder ------ 本地零依赖向量

python 复制代码
# 中文按单字 + 相邻双字(bigram),英文按词
# 有符号哈希投影到 1024 维 + sublinear tf(1+log(tf)) + L2 归一化
h = md5(token); idx = h % dim; sign = ±1
vec[idx] += sign * (1 + log(tf))

质量不如真 embedding,但检索链路是真的:切分、入库、混合召回、RRF、重排、阈值兜底全部执行。

收益:面试现场断网、客户内网、CI 环境,都能演示完整链路。

六、接真实模型

编辑 server-python/.env

ini 复制代码
LLM_PROVIDER=openai
LLM_BASE_URL=https://api.deepseek.com/v1
LLM_API_KEY=sk-xxx
LLM_MODEL=deepseek-chat

因为是 OpenAI 兼容协议Qwen / 通义 / Moonshot / vLLM / Ollama 只换 base_urlmodel,代码一行不用改。

小提示:DeepSeek 不提供 embedding 接口,所以 EMBED_PROVIDER 保持 hashing(本地向量); 如果你有 OpenAI / 通义的 Key,可以改成 openai 用真正的语义向量。

七、跑测试

powershell 复制代码
python -m pytest tests -q
# 11 passed

覆盖了:SQL 护栏、注入检测、混合检索、工具、HITL、端到端编排、API 与 SSE 流。

八、三个必看的演示点

  1. 知识库问答 :问"P0 缺陷多久修复" → 看引用 [1] 能展开原文
  2. 数据问答:问"成本排名" → 看生成的 SQL 和只读校验 (把问题改成"删掉成本表" → 被护栏拦截)
  3. 人工确认:问"把告警推到值班群" → Agent 不直接推,弹确认卡

相关推荐
再吃一根胡萝卜1 小时前
10 · 踩坑记录与优化清单
面试
再吃一根胡萝卜1 小时前
09 · Java 双栈:Spring Boot + LangChain4j
面试
再吃一根胡萝卜1 小时前
07 · 记忆、可观测与成本控制
面试
再吃一根胡萝卜1 小时前
04 · RAG 全流程:从切分到引用溯源
面试
再吃一根胡萝卜1 小时前
11 · 如何把项目写进简历与面试
面试
再吃一根胡萝卜7 小时前
08 · 前端:Vue3 + SSE 流式与执行链路可视化
面试
再吃一根胡萝卜7 小时前
03 · 后端:FastAPI 与分层架构
面试
Interview Aid11212 小时前
Walmart Global Tech SDE 三轮面经|基础、并发、压力面
面试·职场和发展
ocean210316 小时前
2025-2026年AI提效与实践大厂面试高频问题
人工智能·面试·职场和发展·提示词工程·ai提效