1 明确 AI Agent 的业务目标

开发 AI Agent 的第一步不是选择大语言模型,而是明确它要解决什么问题。AI Agent 本质上是一种能够理解任务、调用工具、处理信息并完成目标的软件系统。如果业务目标不清晰,后续的模型选择、工具设计、知识库建设和效果评估都会失去依据。

一个完整的业务目标通常应说明用户是谁、输入是什么、Agent 需要完成哪些动作、输出结果是什么,以及怎样判断任务是否成功。例如,“开发一个企业客服 Agent”过于宽泛,可以进一步定义为:“根据客户提供的订单号查询物流状态;如果订单异常,则创建售后工单;退款操作必须经过人工确认。”

设计内容

需要回答的问题

示例

用户对象

谁使用 Agent

客服人员、企业客户

业务任务

Agent 具体完成什么

查询订单、生成工单

输入信息

用户提供哪些数据

订单号、客户问题

输出结果

用户最终得到什么

物流状态、处理建议

成功标准

怎样评价效果

查询准确率、任务完成率

风险边界

哪些事情不能自动完成

退款、删除数据、修改权限

在目标确定后,还应划分自动处理范围和人工处理范围。一般而言,查询、分类、摘要、信息检索等低风险任务适合自动完成;支付、退款、合同签署、删除数据、修改账户权限等高风险任务,应当加入人工审批或二次确认机制。

2 分析任务并选择 Agent 类型

并不是所有 AI 应用都需要高度自主的 Agent。有些任务使用普通的问答系统或固定工作流就能解决。只有当任务需要动态判断、跨系统调用或根据中间结果调整步骤时,才更适合使用 Agent。

按照自主程度,系统通常可以分为三种类型。

类型

工作方式

适用场景

主要特点

问答型应用

模型直接根据上下文回答

企业知识问答

实现简单,控制性强

工作流型 Agent

按固定流程调用模型和工具

审批、客服、报告生成

稳定、容易测试

自主决策型 Agent

根据任务动态规划和选择工具

复杂研究、数据分析

灵活,但成本和风险较高

实际开发时,建议优先采用“固定流程加模型能力”的方式,而不是一开始就让模型完全自主。固定流程负责权限、业务规则和安全约束,模型负责语言理解、内容分析和步骤选择。这样既能利用大模型的灵活性,又能避免不可控的执行行为。

Agent 类型

典型场景

推荐技术

问答 Agent

FAQ、客服咨询

OpenAI SDK、Claude SDK、LangChain

RAG Agent

企业知识库问答

LlamaIndex、LangChain、Dify

工具调用 Agent

查询订单、生成报表

LangGraph、Semantic Kernel

多 Agent 系统

研究、分析、协作

AutoGen、CrewAI、LangGraph

工作流 Agent

审批、工单、流程自动化

LangGraph、Temporal、n8n

浏览器 Agent

网页操作、自动填表

Playwright、Browser Use

私有化 Agent

内网和敏感数据场景

Ollama、vLLM、SGLang

3 设计总体系统架构

AI Agent 通常由交互层、任务编排层、模型层、工具层、知识库、记忆系统以及安全监控模块组成。各模块应当职责清晰,避免把所有逻辑都写进 Prompt 中。

交互层负责接收文字、语音、图片和文件,也负责展示流式回答、工具调用状态以及人工确认界面。Agent 编排器是系统的控制中心,负责维护任务状态、安排执行顺序、判断是否继续调用工具以及处理异常。

模型层负责自然语言理解和决策,但不应直接连接数据库或拥有系统管理员权限。模型需要使用的外部能力,都应通过工具层暴露。知识库用于提供企业内部资料,记忆系统用于保存当前任务和用户偏好,安全模块则负责认证、授权、数据脱敏和操作审计。

4 选择模型与基础技术栈

模型选择应服务于任务,而不是盲目追求参数规模。需要综合考虑推理能力、工具调用能力、上下文长度、响应速度、成本、数据合规和部署方式。

选择因素

关注内容

对开发的影响

推理能力

能否理解复杂任务

影响计划和决策质量

工具调用

是否支持函数调用、结构化输出

影响系统稳定性

上下文长度

能处理多少历史信息

影响长文档和多轮对话

响应速度

首字延迟和整体延迟

影响用户体验

调用成本

输入、输出 Token 价格

影响运营费用

数据合规

是否允许企业数据发送到外部

影响部署方式

可控性

是否支持温度、输出约束等

影响结果一致性

技术栈可以根据团队已有能力进行选择。Python 适合人工智能、数据处理和快速原型开发;TypeScript 适合 Web 服务和前后端协同;Java 适合大型企业已有系统;Go 适合高并发基础服务。数据库可以使用关系型数据库保存业务数据和任务状态,Redis 保存缓存与会话,对象存储保存文件,向量数据库用于知识检索。

层级

主要职责

推荐技术

前端交互层

对话、文件上传、结果展示

React、Next.js、Vue、Nuxt

API 层

鉴权、限流、接口管理

FastAPI、NestJS、Spring Boot、Kong

Agent 层

Prompt、工具调用、状态和流程编排

LangGraph、LangChain、LlamaIndex

模型层

模型调用、路由和成本控制

OpenAI、Claude、Gemini、LiteLLM

数据层

业务数据、向量数据、缓存

PostgreSQL、pgvector、Redis、Milvus

基础设施层

部署、监控、日志和安全

Docker、Kubernetes、Prometheus、Vault

关于Agent 编排框架,LangChain 适合构建模型调用、Prompt 链、RAG、工具调用和基础 Agent。它开发速度快,适合原型和中小型应用。LangGraph 适合复杂、有状态、需要暂停恢复和人工审核的工作流。LlamaIndex 更适合文档解析、数据连接、索引构建和 RAG 应用,尤其适用于企业知识库。

对于简单 Agent,不一定需要复杂框架。直接调用模型 API,并自行实现状态机,通常更容易调试。只有当系统需要长流程、任务恢复、人工介入或多 Agent 协作时,才应引入相应的编排框架。

模块

推荐技术

前端框架

Next.js、React、Vue、Nuxt

编程语言

TypeScript

UI 组件

Ant Design、Element Plus、shadcn/ui

状态管理

Zustand、Redux Toolkit、Pinia

数据请求

React Query、Axios

流式通信

SSE、WebSocket

Markdown

React Markdown、Markdown-it

AI UI

Vercel AI SDK

5 设计 Prompt 和任务状态

Prompt 是 Agent 的行为规范,但它不能代替程序中的权限控制和业务规则。一个好的系统提示词应明确 Agent 的角色、目标、可使用的工具、回答依据、禁止事项、异常处理方式以及输出格式。

例如,订单 Agent 的基本规则可以是:

```text

你是企业订单助手,只能查询当前用户有权限访问的订单。

订单号缺失时先询问用户,不得猜测订单状态。

退款、取消订单等写操作必须获得用户明确确认。

工具返回失败时,应说明原因,不得编造结果。

最终回答应包含处理结论、依据和后续建议。

```

除了自然语言提示,还应尽量要求模型输出结构化结果。结构化输出可以减少解析错误,并便于程序进行参数验证。

{

  "intent": "query_order",

  "order_id": "A123456",

  "need_confirmation": false,

  "next_action": "call_get_order"

}

Agent 还需要维护任务状态。状态中可以记录用户输入、当前计划、已执行步骤、工具结果、待确认动作和错误信息。

状态内容

作用

session_id

标识当前会话

user_id

判断用户身份和权限

user_input

保存原始需求

intent

记录任务类型

plan

保存执行计划

tool_results

保存外部工具返回结果

pending_action

记录等待确认的操作

error

保存异常原因

completed

判断任务是否结束

Prompt 应进行版本管理,并与业务代码分离。可使用 LangSmith、Langfuse、PromptLayer、Humanloop 或自建 Prompt Registry。

Agent 的输出应尽可能采用结构化格式,避免直接依赖不稳定的自然语言。

技术

用途

Pydantic

Python 数据模型和响应校验

Zod

TypeScript 参数和输出校验

JSON Schema

模型结构化输出

OpenAPI

工具接口定义

Guardrails AI

输出格式和安全控制

Instructor

将模型输出映射为结构化对象

6 开发工具调用能力

工具是 Agent 连接现实系统的接口。工具可以是搜索服务、数据库查询、文件解析、计算程序、邮件系统、CRM、ERP 或内部业务 API。工具定义越明确,模型越容易正确使用。

每个工具至少应包含名称、用途、输入参数、参数类型、必填字段、权限要求、返回结构和错误格式。工具参数必须由程序进行二次校验,不能直接信任模型生成的内容。

def get_order(order_id: str, user_id: str):

    validate_order_id(order_id)

    check_permission(user_id, order_id)

    return order_service.query(order_id)

工具设计应遵循最小权限原则。查询订单的工具不应拥有删除订单的能力;生成报告的 Agent 不应自动修改财务数据。读操作和写操作最好分离,并给高风险工具增加确认机制。

操作类型

示例

推荐策略

只读操作

查询、搜索、统计

可自动执行

低风险写操作

创建草稿、生成报告

可自动执行并记录

中风险操作

创建工单、发送内部通知

可配置确认

高风险操作

退款、删除、付款、改权限

必须人工确认或审批

对于写操作,还应实现幂等机制。例如 Agent 因网络超时重复调用“创建工单”,系统不能因此产生两张相同工单。可以使用唯一请求编号、业务流水号或幂等键避免重复执行。

集成场景

推荐工具

API 服务

FastAPI、NestJS、Spring Boot

工作流自动化

n8n、Temporal、Airflow、Prefect、Camunda

浏览器操作

Playwright、Puppeteer、Browser Use

消息队列

Kafka、RabbitMQ、NATS、BullMQ

代码沙箱

Docker、Firecracker、E2B、gVisor

7 建设企业知识库与 RAG

当 Agent 需要回答企业制度、产品文档、技术手册或合同内容时,应建设知识库。RAG 的基本过程是将文档解析、切分、向量化并存入检索系统;用户提问时,系统先检索相关内容,再把结果交给模型生成回答。

文档处理不能只关注纯文本,还要考虑表格、图片、页码、标题层级、附件和版本信息。对于扫描件,需要使用 OCR。文本切分应尽量保持语义完整,例如按照章节、标题和段落切分,而不是机械地按字符数量截断。

企业知识库尤其要重视权限过滤。即使某段内容与问题高度相关,如果当前用户没有访问权限,也不能提供给模型。回答最好附带文档名称、章节、页码或原文引用,使用户能够核验结论。

RAG 效果通常受到三个因素影响:文档质量、切分方式和检索策略。单纯使用向量检索未必最优,可以结合关键词检索、元数据过滤和重排序模型,形成混合检索。

环节

推荐技术

文档解析

Unstructured、PyMuPDF、Docling、MinerU、LlamaParse

OCR

PaddleOCR、Tesseract、Azure Document Intelligence

Embedding

BGE-M3、BGE-large-zh、Jina、OpenAI、Qwen

向量数据库

pgvector、Qdrant、Milvus、Pinecone、Weaviate

混合检索

Elasticsearch、OpenSearch、PostgreSQL

重排序

BGE Reranker、Cohere Rerank、Jina Reranker

RAG 框架

LlamaIndex、LangChain

8 设计记忆和上下文管理

Agent 的记忆主要包括短期记忆、工作记忆和长期记忆。短期记忆保存当前对话,工作记忆保存任务执行过程,长期记忆保存用户明确允许系统长期保存的信息。

记忆类型

保存内容

典型存储方式

短期记忆

最近对话、当前问题

会话数据库、Redis

工作记忆

计划、工具结果、中间变量

任务状态数据库

长期记忆

用户偏好、历史摘要

数据库、向量库

知识记忆

企业文档、制度、产品信息

文档库、向量数据库

不能把全部历史对话无限地发送给模型,否则会导致上下文过长、成本增加和回答变慢。系统应定期压缩历史内容,只保留与当前任务相关的事实、决定和未完成事项。

长期记忆必须遵循授权原则。用户应能够知道系统记住了什么,并可以修改或删除。敏感信息不应默认保存,更不能因为某次对话而永久写入共享记忆。

类型

推荐技术

典型用途

会话状态

Redis、PostgreSQL

多轮对话

工作流状态

LangGraph Checkpointer

暂停、恢复和重试

长期记忆

Mem0、Zep、Letta

用户偏好和历史事实

向量记忆

Qdrant、pgvector、Milvus

语义检索

缓存

Redis

Prompt、模型响应和会话缓存

9 编排任务流程与控制执行循环

Agent 的执行过程通常是“理解需求—制定计划—调用工具—读取结果—继续执行或结束”。编排器需要限制最大步骤数、最大调用次数、总运行时间和 Token 消耗,避免出现无限循环或成本失控。

固定流程适合审批、报表、客服和数据查询;动态流程适合研究、分析和多来源信息整合。实际系统可以采用混合模式:主流程由程序控制,具体步骤由模型在限定范围内选择。

Agent 每执行一步,都应更新状态并留下记录。这样任务即使中断,也可以从最近的检查点恢复,而不必从头开始。

10 加入安全、权限与人工确认

安全能力必须在 Agent 设计初期加入,不能等系统上线后再补充。Agent 经常同时处理用户输入、内部数据和外部工具,因此必须防止越权访问、数据泄露、提示词注入和危险操作。

系统至少应具备身份认证、细粒度授权、租户隔离、敏感信息脱敏、操作审计和异常告警。模型只能提出工具调用意图,真正的权限判断必须由独立的程序完成。

外部网页和用户上传文件中可能包含恶意指令。系统应把这些内容视为不可信数据,而不是系统指令;工具访问范围也应由程序限制,例如只允许访问指定域名和指定数据库。

人工确认可采用以下流程:

```text

Agent 生成操作建议

       ↓

展示操作对象、参数和影响

       ↓

用户或管理员确认

       ↓

系统再次校验权限

       ↓

执行工具并记录审计日志

```

对于支付、退款、删除、发信、权限修改和生产系统操作,人工确认通常是必要的安全措施。

安全风险

推荐措施

Prompt Injection

隔离系统指令、用户输入和检索内容

越权调用

RBAC、ABAC、OAuth2、OIDC

敏感信息泄露

Presidio、正则脱敏、数据分类

密钥泄露

Vault、AWS Secrets Manager、Azure Key Vault

代码执行风险

Docker、Firecracker、gVisor、E2B

数据审计

操作日志、调用链追踪、审计数据库

内容安全

输入过滤、输出审核、违规检测模型

11 处理异常并验证结果

真实环境中的 API、数据库和模型都可能出错,因此 Agent 必须具备错误处理能力。常见异常包括参数错误、网络超时、权限不足、数据不存在、工具返回格式错误以及模型生成无效调用。

工具应使用统一错误结构,明确说明错误代码、用户可理解的提示和是否允许重试。临时网络错误可以有限重试,参数错误应让模型修正或向用户提问,权限错误应立即停止,连续失败则应转人工或结束任务。

模型生成的结果还需要经过验证。验证可以包括格式验证、业务规则验证和事实一致性验证。例如,退款金额不能超过订单金额,用户不能查看其他部门数据,报告日期不能晚于当前日期。金额、日期、统计数据等内容应尽量由程序计算,而不是让模型自由生成。

12 建立测试与评估体系

AI Agent 的测试不仅要看最终答案,还要检查它是否选择了正确工具、是否传入了正确参数、是否遵守了权限规则以及是否能从错误中恢复。

测试数据应包含正常输入、信息缺失、模糊问题、错误参数、权限不足、工具超时、恶意指令和多轮对话等情况。每次修改模型、Prompt、工具定义或检索策略后,都应使用固定测试集重新评估。

指标

含义

任务完成率

Agent 是否完成用户目标

工具选择准确率

是否调用了正确工具

参数正确率

工具参数是否正确

最终答案准确率

回答是否符合事实

检索召回率

是否找到了相关资料

引用正确率

引用是否真正支持结论

平均响应时间

用户等待时间

单任务成本

平均模型和工具费用

人工接管率

有多少任务需要人工处理

安全拦截率

危险请求是否被正确阻止

还可以让模型进行辅助评估,但涉及关键业务时,必须结合人工抽检、规则校验和真实业务结果进行综合判断。

测试类型

工具

主要内容

单元测试

pytest、Jest、Vitest、JUnit

业务逻辑、工具和权限

集成测试

Testcontainers、Docker Compose

数据库、模型和外部服务

RAG 评估

Ragas、DeepEval

召回率、相关性和忠实度

Prompt 评估

Promptfoo、OpenAI Evals

Prompt 版本对比

链路评估

LangSmith、Langfuse、Phoenix

Agent 调用过程

端到端测试

Playwright

前端和完整业务流程

13 部署、监控与持续优化

云端部署

适合快速上线和弹性扩展,可选择 AWS、Azure、Google Cloud、阿里云、腾讯云、华为云和火山引擎。

部署内容

推荐技术

容器化

Docker

容器编排

Kubernetes

网关

Kong、APISIX、Nginx

数据库

RDS PostgreSQL、Cloud SQL

对象存储

S3、OSS、COS、MinIO

CI/CD

GitHub Actions、GitLab CI、Argo CD

GPU 推理

vLLM、SGLang、Kubernetes

快速托管

原型项目可以使用 Vercel、Railway、Render、Fly.io、Hugging Face Spaces、Modal、Replicate、Dify Cloud 或 Flowise Cloud。

企业内网

Agent 上线后,系统必须记录完整的执行链路,包括请求编号、用户身份、模型版本、Prompt 版本、工具调用顺序、工具结果、最终输出、Token 消耗、延迟和错误信息。日志应进行脱敏,不能直接记录密码、身份证号、银行卡号等敏感数据。

生产监控应关注请求量、成功率、超时率、工具错误率、平均耗时、Token 消耗、单任务成本、循环次数和人工升级率。若某个工具错误率突然升高,或 Agent 的平均执行步骤明显增加,应及时排查。

发布时建议采用内部测试、小范围试用、灰度发布和逐步扩大范围的方式。高风险能力可以先只生成建议,不直接执行;稳定后再增加人工确认下的执行能力。

监控方向

推荐工具

LLM 调用

Langfuse、LangSmith、Helicone

链路追踪

OpenTelemetry、Jaeger

指标监控

Prometheus、Grafana

日志管理

Loki、ELK、OpenSearch

异常追踪

Sentry

成本分析

LiteLLM、Portkey、Langfuse

14 推荐的实际开发路径

一个可行的开发顺序是:先选择一个边界清晰的单一任务,完成最小可用版本;再加入工具调用和权限控制;随后接入知识库、记忆和多步骤流程;最后补充评估、监控、审计和灰度发布。

阶段

核心工作

目标

需求阶段

明确用户、任务和边界

确定做什么

原型阶段

接入模型和基础 Prompt

验证可行性

工具阶段

接入数据库和业务 API

让 Agent 能执行

知识阶段

建设 RAG 知识库

提供企业资料

流程阶段

增加状态、重试和恢复

支持复杂任务

安全阶段

加入权限、审计和人工确认

降低风险

评估阶段

建立测试集和指标

衡量真实效果

生产阶段

监控、灰度和持续优化

稳定运营

总体来看,开发 AI Agent 的核心过程可以概括为:

```text

明确业务目标

    ↓

选择合适的 Agent 类型

    ↓

设计系统架构

    ↓

选择模型与技术栈

    ↓

设计 Prompt 和任务状态

    ↓

开发工具调用能力

    ↓

建设知识库与记忆

    ↓

编排多步骤任务

    ↓

加入权限、安全和人工确认

    ↓

验证结果并处理异常

    ↓

测试评估、部署监控和持续优化

```

快速原型方案

模块

技术

前端

Next.js、Vercel AI SDK

后端

Next.js API Routes

Agent

LangChain

模型

OpenAI、Claude、通义千问

向量库

Chroma

数据库

Supabase

部署

Vercel

适合 Demo、个人项目和产品验证。

中小型生产方案

模块

技术

前端

React、TypeScript、Ant Design

后端

FastAPI

Agent

LangGraph

知识库

LlamaIndex

模型网关

LiteLLM

数据库

PostgreSQL、pgvector

缓存

Redis

异步任务

Celery

文件存储

S3、OSS、MinIO

监控

Langfuse、Prometheus、Grafana

部署

Docker、Kubernetes

适合企业内部系统和中小型 SaaS 产品。

企业级方案

模块

技术

前端

Next.js、TypeScript

API 网关

Kong、APISIX

后端

FastAPI、Spring Boot

Agent 编排

LangGraph、Temporal

模型网关

LiteLLM、Portkey

模型服务

Azure OpenAI、阿里云百炼、vLLM

检索系统

Elasticsearch、Milvus

数据库

PostgreSQL、Redis Cluster

消息队列

Kafka

身份认证

Keycloak、Auth0、Azure AD

密钥管理

Vault、KMS

监控

OpenTelemetry、Prometheus、Grafana

评估

LangSmith、Ragas、Arize Phoenix

部署

Kubernetes

CI/CD

GitHub Actions、GitLab CI、Argo CD

适合高并发、多租户、强权限和核心业务系统。

总结,开发一个AI Agent的原则是:将AI Agent当成一个需要权限、状态、工具、数据、流程和监控的完整软件系统。先用确定性流程保证安全和稳定,再在必要位置引入模型的自主决策能力,通常能够获得更好的可靠性、可维护性和投入产出比。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐