企业自研 Agent 主要阶段和步骤
| 阶段 | 时间 | 核心目标 | 阶段产物 |
|---|---|---|---|
| 0 | 1 周 | 技术架构以及存储架构考虑 | 1. python、typescript、go、rust 等语言在这方面有天然的一些优势,需要进行选择 2. 考虑上述学习成本 3. 对话消息和记忆需要存储,sqlite 适用短期记忆、PostgreSQL 适合长期记忆 4. 要做 RAG 就得需要向量库,Qdrant、chromdb、Milvus 三种不同的向量库的选择 5. 初期测试使用阶段使用的大模型考虑,既要有成本也要有对应的模型中等能力,至少不过分垃圾也不是那么牛逼就行 6. 缓存会话,需要 Redis,是否需要集群需要评估【短期上下文、锁、限流、Session】 7. 日志,对 Agnet 执行过程以及调用链路的日志记录是必然的,所以本地肯定是不行的,日志量肯定会很大,可能会需要使用到 ELK 8. 监控【普罗米修斯或者其他】,对 Agent 平台一个监控系统 9. MySQL 或 PostgreSQL,存储内容包括:用户身份、角色权限、数据权限、Agent 配置、Tool 配置、Prompt 版本、会话元数据、审计记录、长期记忆元数据、定时任务执行记录、知识库文档元数据 10. 网关:登录、限流、IP 控制、路由、TLS、请求大小限制、统一 TraceID、灰度发布、基础审计、内部可信任 Header 11. 配置中心:模型地址、模型 API Key、超时时间、开关配置、限流规则、MCP Server 地址 12. 对象存储:知识库资源存储、数据库只保存元数据,推荐 MiniIO、RustFS 13. 向量数据库:见下方向量数据库选型 14. 文档解析服务:文件上传->病毒扫描->文本解析->OCR 识别->清洗->分块->Embedding->写入向量库 15. Embedding 模型以及重排序模型以及提高召回率的 BM25 16. 可观测组件:见下发可观测组件内容 17. 沙箱环境和代码执行环境:推荐 Docker,每个任务创建隔离工作区 |
| 1 | 1~2 周 | 掌握大模型和 Agent 基础 | 一个支持流式对话和 Function Call 的 Demo |
| 2 | 2 周 | 自己实现 Agent 执行循环 | ReAct Agent Runtime、Agent-loop |
| 3 | 2 周 | 完成工具系统与 MCP | Tool Registry + MCP Client 【是否需要内置一些 Tool,比如 search, 搜索 tool,则需要对接外部搜索引擎】 |
| 4 | 3 周 | 完成上下文、记忆、知识库 | Session Memory + RAG【上下文压缩、记忆持久化、知识库向量存储,embedding 如何最优化】 |
| 5 | 2 周 | Human-in-the-loop | 实现 Agent 的容错与把关以及和用户建立信任 |
| 6 | 2 周 | 完成定时任务功能 | 需要根据自然语言生成定时任务、定时任务持久化、可支持开关配置、并发执行问题处理 |
| 7 | 2 周 | LLM 多服务商接入 | 主流支持 OpenAI、Anthropic 的大模型、其他使用 LiteLLM 进行兼容 |
| 8 | 2 周 | SKILL 框架,渐进式披露的三层加载机制 | 实现 Anthropic 的 Agent Skills 的框架,实现按需加载 |
| 9 | 3 周 | 调研输入 Tokens,输出 Tokens,完成 Tokens 记录 | 1. 大模型在输入、输出、完成时所用的 tokens 的消耗记录 2. 大模型对应的计费方式 3. 费用预警 4. 可用额度预警 5. 费用以及可用额度快达标后用户使用层处理 |
| 10 | 1 周 | 对接企业微信智能机器人 | 在企业微信里进行聊天响应 |
| 11 | 2~3 周 | 调研企业微信 | 企业微信是否可以在加好友的时候触发回调,知晓微信客户的信息,从而间接获取捷安特客户信息。 |
| 12 | 3~5 周 | 调研用户权限与 Agnet 结合的数据权限问题【调研】 | 1. 捷安特用户C端、捷安特职员B端登录后如何存储用户信息以及传递用户信息 2. 职员切换了组织信息,如何能保证 Agent 能实时获取最新的组织信息去获取对应的数据权限以内的数据 3. 各大子系统要如何针对 Agent 开发对应的 MCP Server,用来查询各子系统的业务数据,是否需要一个 MCP Gateway 网关来统筹 4. 如何确保职员和普通客户的身份信息传递到 Agent 层面,能自动识别去调用对应的身份获取对应的身份该获取的数据 5. 因为 C 端和 B端用户都能使用,需要进行开发限流中间件 6. AI 执行链需要有一个审计功能内容进行记录 |
| 13 | 1周 | 开发基础 web ui 界面测试 | 进行前端开发,对接 Agent Service,并实现对应的 SSE 事件流中出现的Thought of chain、Tool Use、Permission Apply等相关事件做对应的UI Component |
向量数据库
| 方案 | 适合场景 |
|---|---|
| PostgreSQL + pgvector | 中小规模、希望架构简单 |
| Elasticsearch | 已有 ES,兼顾全文和向量搜索 |
| Milvus | 大规模向量检索 |
| Qdrant | 部署简单、过滤能力不错 |
| OpenSearch | 已使用 AWS 或搜索生态 |
| ChromaDB | 仅适合开发和 PoC |
可观测组件
| 能力 | 组件 |
|---|---|
| Trace | OpenTelemetry |
| Trace 后端 | Jaeger / Tempo |
| 指标 | Prometheus |
| 可视化 | Grafana |
| 日志 | Loki / ELK |
| 错误监控 | Sentry |
| Agent 评测 | Langfuse / 自研 |
| LLM 调用观测 | Langfuse / Phoenix |
需要采集
用户请求
Prompt 版本
模型名称
模型参数
Token 数量
首次响应时间
总耗时
Tool 调用次数
Tool 参数
Tool 结果摘要
异常信息
审批过程
最终输出要对日志进行脱敏
手机号
身份证
客户姓名
地址
API Key
Token
业务敏感字段额外业务层面需要单独开发的
API Gateway
为
Agent Service处理登录、拦截、限流、IP 控制、路由、TLS、请求大小限制、统一 Trace ID、灰度发布、基础审计做前置处理。
Business Service
企业业务服务层
为
Agent提供对应的MCP Server的调用查询。比如:
- 客户服务查询
- 门店服务查询
- 库存查询
- 订单查询【好几种平台的】
- 报表数据查询
- 报表数据需要重新建库使用宽表处理,避免影响主业务库的正常运转
