Skip to content

Agent 项目阶梯与生产交付:从 ReAct Demo 到企业级系统 ​

这篇覆盖 Python AI Agent 路线融合指南 的阶段四与阶段五:项目实战阶梯与生产交付。它对应外部 python-ai-agent 项目的阶段八(实战项目路线)与阶段七(工程化部署与运维)。

这页解决一个常见问题:写了很多 Demo,作品集却拿不出手。原因是 Demo 只证明"会调 API",不证明"能交付"。下面五级项目按难度递进,每级都给出合格标准——达不到标准就停在这一级补,不要堆项目数量。

五级项目阶梯 ​

级别项目核心能力周期
L1ReAct 智能问答 Agent工具调用、循环、终止条件1 周
L2知识库 RAG Agent入库、检索、引用、拒答2 周
L3多角色内容创作团队多智能体分工、共享状态、仲裁2 周
L4数据分析 AgentText2SQL、权限查询、结果解释3 周
L5企业智能客服 Agent生产化:权限、持久化、监控、租户隔离6-8 周

L1-L2 是入门必做,L3/L4 二选一深入,L5 是毕业设计。每一级都建议先读对应理论再动手:L1 对应 Agent 工程总览,L2 对应 RAG 入库链路,L3 对应 多 Agent 系统,L4 对应 Agent Text2SQL 工程实践,L5 对应本站企业知识库 Agentic RAG 全章。

L1:ReAct 智能问答 Agent ​

最小 Agent:一个 LLM + 两三个工具(如天气查询、计算器)+ ReAct 循环。

合格标准:

  • 有明确的终止条件(最多 N 轮、模型给出最终答案)。
  • 工具调用失败时,错误作为消息回给模型而不是直接崩溃。
  • 有日志:每轮思考、每次工具调用、耗时。
  • 有单元测试:mock 模型输出,验证循环路由正确。

踩坑预警:循环不设上限导致 token 爆炸;工具异常直接 raise 导致会话中断;没有日志导致无法解释模型为什么调错工具。

L2:知识库 RAG Agent ​

在 L1 上加检索:文档入库 → 向量化 → 检索 → 带引用作答。

合格标准:

  • 入库链路可重跑:文档解析、分块、向量化、入库幂等。
  • 答案带引用,引用能对齐到原文片段。
  • 检索不到证据时明确拒答,而不是编造。
  • 有一组 Bad-case 样例:召回失败、证据冲突、超纲问题的预期行为。

这个项目的工程细节(权限过滤时机、引用对齐、拒答策略)见 RAG 检索与重排、RAG 引用与拒答。

L3 或 L4:选一个深入 ​

L3 多角色内容创作团队练多智能体:规划者、写作者、审核者分工,共享状态里传稿件,仲裁规则定"谁说了算"。合格标准:分工边界清晰、单 Agent 失败不影响整体、能解释为什么这个问题需要多 Agent。

L4 数据分析 Agent练 Text2SQL:自然语言 → SQL → 执行 → 结果解释。合格标准:只读权限的数据库账号;SQL 生成失败有重试与降级;表结构理解有测试集;敏感字段有权限过滤。工程细节见 Agent Text2SQL 工程实践。

选择标准:作品集里 L4(数据分析)比 L3(内容创作)更有工程说服力,因为它涉及权限、SQL 安全和结构化输出;L3 适合想突出多智能体编排的情况。两个都做不如把一个做到 L5 标准。

L5:企业智能客服 Agent(毕业设计) ​

把 L2 的 RAG 能力和 L4 的数据能力捏合成一个生产级系统:意图分流 → 知识问答 → 满足不了建工单/转人工 → 多租户后台。

生产化不是加功能,是堵住每个环节的不靠谱:

不靠谱机制
服务重启状态丢失Checkpointer + Redis/Postgres 持久化
租户数据越权thread_id = 租户 + 会话;向量库元数据过滤;所有查询带租户条件
高危操作失控角色权限分级 + 人工审批
故障无感知成功率/失败率指标 + 告警 + trace_id 链路日志
改 prompt 引入回归评测集 + Bad-case 队列 + 改动必跑评测
发布切断在途请求优雅停机
部署不可复制Docker Compose 一键拉起应用 + worker + Redis + PG + 向量库

多租户隔离最容易漏的是检索和后台导出:应用层做了隔离,但向量检索没带租户过滤、后台导出没校验租户,B 租户就能看到 A 租户数据。隔离必须贯穿状态、检索、查询、导出全链路。

完成标准不是"页面能答对问题",而是:权限过滤可验证、入库失败可重试、评测报告能说明召回/引用/拒答情况、一条命令能本地拉起全套依赖。

这个项目与本站 企业知识库 Agentic RAG 实战 是同一能力层级——L5 可以直接以本站项目的架构为蓝本,重点放在自己动手实现权限、评测和运维章节。

工程化部署贯穿每一级 ​

部署不是最后一章,而是从 L1 就开始习惯:

  • 配置:环境变量 + pydantic Settings,不硬编码 key。
  • 服务化:FastAPI 包一层,提供健康检查端点(见 FastAPI 基础、FastAPI 进阶)。
  • 容器化:Dockerfile + Compose,从 L1 起每级项目都能一条命令拉起。
  • 观测:结构化日志从第一天就有,指标和告警在 L2+ 加入。
  • 后台任务:入库、批量处理放 worker,不放请求进程(见 后台任务、消息队列)。

作品集表达 ​

每个项目放三样东西,比代码本身更重要:

  1. README 一页:问题背景、架构图、核心取舍、如何运行。
  2. 一段演示:录屏或 GIF,展示一个正常流程 + 一个失败处理。
  3. 一份复盘:最难的问题是什么、怎么定位的、如果重做会改什么。

面试官判断工程能力靠的是复盘里"为什么这样设计",不是功能列表。参考本站 Agentic RAG 项目求职复盘 的表达方式。

项目检查清单 ​

每个项目交付前过一遍:

  • [ ] 这个需求真的需要 Agent,还是 Prompt Chain / RAG 已够?
  • [ ] 模型输出进入系统前经过结构化校验吗?
  • [ ] 有副作用的工具,谁负责确认和回滚?
  • [ ] 用户看到的每条事实能追到证据吗?
  • [ ] 失败时,日志和评测能定位到具体环节吗?
  • [ ] 一条命令能拉起完整环境吗?
  • [ ] 有没有一组 Bad-case 和预期行为说明?

下一步 ​

来源与授权说明 ​

本篇吸收并改写自 umlink/python-ai-agent 阶段八(实战项目路线)与阶段七(工程化部署与运维)的项目分级结构,已取得作者授权。原项目采用 MIT License。