AI 智能体应用开发实战指南:从概念到落地,手把手教你构建第一个 AI Agent

0 阅读18分钟

AI 智能体应用开发实战指南:从概念到落地,手把手教你构建第一个 AI Agent

2026 年,AI Agent 已经从实验室走向生产环境。本文将从零开始,带你理解智能体的核心架构,掌握 RAG、Function Calling、MCP 等关键技术,并手把手完成一个完整的 AI 智能体应用开发。

前言

如果你关注 AI 领域,一定听过这些词:AI Agent、RAG、Function Calling、MCP、LangChain、Dify、Coze……

概念很多,但真正动手开发时,很多人会陷入"知道概念但不知道怎么开始"的困境。

这篇文章的目标很简单:给你一条清晰的学习路径和可落地的实战代码,让你读完就能动手构建自己的 AI 智能体应用。


一、什么是 AI 智能体(Agent)?

先搞清楚一个核心区别:

传统 ChatBotAI Agent(智能体)
能力只能"说"能"说"也能"做"
交互一问一答自主规划、多步执行
工具可调用外部 API、数据库
记忆单次对话长期记忆 + 上下文管理

简单来说,AI Agent = 大模型(大脑)+ 工具(手脚)+ 记忆(经验)+ 规划(思维)

一个典型的 Agent 工作流程是这样的:

用户输入 → 大模型理解意图 → 规划执行步骤 → 调用工具获取信息 → 综合结果 → 输出回答

比如用户问"今天北京天气怎么样,适合穿什么?",Agent 会:

  1. 理解需要查询天气信息
  2. 调用天气 API 获取北京实时天气
  3. 根据温度、风力等信息给出穿衣建议
  4. 将结果组织成自然语言返回

二、AI 智能体的核心架构

一个完整的 AI 智能体通常包含以下四个核心模块:

2.1 大模型(LLM)—— 智能体的大脑

大模型是智能体的核心决策引擎,负责理解用户意图、规划执行步骤、生成最终回复。

主流模型选型(2026 年):

模型特点适用场景
DeepSeek-V3/R1性价比极高,推理能力强通用开发、推理任务
通义千问(Qwen)中文能力强,阿里生态集成好国内业务、中文场景
GLM-4智谱出品,工具调用稳定企业级应用
GPT-4o综合能力强,生态成熟海外业务、复杂任务
Claude长文本处理优秀文档分析、长对话

2.2 工具调用(Tool Use)—— 智能体的手脚

工具调用让大模型能够与外部世界交互,是 Agent 区别于普通 ChatBot 的关键能力。

目前有三种主流的工具调用方案:

方案一:Function Calling(函数调用)

最基础的方案,由大模型直接输出结构化的函数调用请求。

# 以 OpenAI 兼容接口为例
import openai

client = openai.OpenAI(
    api_key="your-api-key",
    base_url="https://api.deepseek.com/v1"  # 或其他兼容接口
)

# 定义工具
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定城市的实时天气信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "city": {
                        "type": "string",
                        "description": "城市名称,如:北京、上海"
                    }
                },
                "required": ["city"]
            }
        }
    }
]

# 第一次调用:让模型决定是否使用工具
response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
    tools=tools
)

# 检查是否需要调用工具
message = response.choices[0].message
if message.tool_calls:
    for tool_call in message.tool_calls:
        if tool_call.function.name == "get_weather":
            # 解析参数并执行
            import json
            args = json.loads(tool_call.function.arguments)
            city = args["city"]
            
            # 调用实际的天气 API
            weather_data = fetch_weather(city)  # 你的天气 API 函数
            
            # 将工具结果返回给模型
            second_response = client.chat.completions.create(
                model="deepseek-chat",
                messages=[
                    {"role": "user", "content": "北京今天天气怎么样?"},
                    message,  # 包含 tool_calls 的 assistant 消息
                    {
                        "role": "tool",
                        "tool_call_id": tool_call.id,
                        "content": json.dumps(weather_data, ensure_ascii=False)
                    }
                ]
            )
            print(second_response.choices[0].message.content)
方案二:ReAct 模式(推理 + 行动)

ReAct(Reasoning + Acting)让模型交替进行"思考"和"行动",适合复杂的多步任务。

# ReAct 循环的核心逻辑
def react_loop(question, max_steps=5):
    messages = [{"role": "user", "content": question}]
    
    for step in range(max_steps):
        response = client.chat.completions.create(
            model="deepseek-chat",
            messages=messages,
            tools=tools
        )
        
        message = response.choices[0].message
        messages.append(message)
        
        # 如果模型没有调用工具,说明已经得出结论
        if not message.tool_calls:
            return message.content
        
        # 执行工具调用
        for tool_call in message.tool_calls:
            result = execute_tool(tool_call)
            messages.append({
                "role": "tool",
                "tool_call_id": tool_call.id,
                "content": result
            })
    
    return "达到最大步骤限制,未能完成推理。"
方案三:MCP(Model Context Protocol)

MCP 是 Anthropic 在 2024 年底推出的开放协议,目标是标准化 AI 模型与外部工具的交互方式

// MCP 工具定义示例
{
  "name": "query_database",
  "description": "查询数据库并返回结果",
  "inputSchema": {
    "type": "object",
    "properties": {
      "sql": {
        "type": "string",
        "description": "要执行的 SQL 查询语句"
      }
    },
    "required": ["sql"]
  }
}

三种方案对比:

方案复杂度灵活性标准化适用场景
Function Calling⭐⭐厂商私有简单工具调用
ReAct⭐⭐⭐⭐⭐自定义复杂多步推理
MCP⭐⭐⭐⭐⭐⭐⭐开放标准跨平台工具集成

2.3 记忆系统(Memory)—— 智能体的经验

记忆系统让 Agent 能够记住之前的交互和学到的知识。

记忆系统
├── 短期记忆(对话上下文)
│   └── 当前会话的聊天历史
├── 长期记忆(持久化存储)
│   ├── 用户偏好
│   ├── 历史交互摘要
│   └── 学到的知识
└── 工作记忆(任务中间状态)
    └── 当前任务的执行进度

2.4 规划能力(Planning)—— 智能体的思维

对于复杂任务,Agent 需要将大目标拆解为可执行的小步骤。

常见的规划策略:

  • 思维链(Chain of Thought):让模型"一步一步想"
  • 思维树(Tree of Thought):探索多条推理路径,选择最优解
  • 任务分解(Task Decomposition):将复杂任务拆成子任务,逐个执行

三、RAG:让智能体拥有专业知识

RAG(Retrieval-Augmented Generation,检索增强生成)是让 AI 智能体拥有"专业知识"的核心技术。

3.1 为什么需要 RAG?

大模型有两个天然缺陷:

  1. 知识截止:训练数据有截止日期,不知道最新信息
  2. 幻觉问题:可能"一本正经地胡说八道"

RAG 的解决思路:不依赖模型记忆,而是实时检索相关资料,让模型基于真实数据回答。

3.2 RAG 的完整流程

文档 → 分块 → 向量化 → 存入向量数据库
                                    ↓
用户提问 → 向量化 → 相似度检索 → 召回相关文档 → 拼入 Prompt → 大模型生成回答

3.3 手把手实现一个 RAG 系统

# 安装依赖
# pip install chromadb sentence-transformers openai

import chromadb
from sentence_transformers import SentenceTransformer
import openai

# 1. 初始化向量数据库
chroma_client = chromadb.PersistentClient(path="./chroma_db")
collection = chroma_client.get_or_create_collection(name="knowledge_base")

# 2. 初始化 Embedding 模型
# 推荐使用 BAAI/bge-large-zh-v1.5(中文效果好)
embedder = SentenceTransformer("BAAI/bge-large-zh-v1.5")

# 3. 文档分块
def split_text(text, chunk_size=500, overlap=50):
    """将长文档分割成小块"""
    chunks = []
    for i in range(0, len(text), chunk_size - overlap):
        chunk = text[i:i + chunk_size]
        chunks.append(chunk)
    return chunks

# 4. 构建知识库
def build_knowledge_base(documents):
    """将文档向量化并存入数据库"""
    all_chunks = []
    all_embeddings = []
    all_ids = []
    
    for doc_id, doc_text in documents.items():
        chunks = split_text(doc_text)
        embeddings = embedder.encode(chunks).tolist()
        
        for i, (chunk, emb) in enumerate(zip(chunks, embeddings)):
            all_chunks.append(chunk)
            all_embeddings.append(emb)
            all_ids.append(f"{doc_id}_chunk_{i}")
    
    collection.add(
        documents=all_chunks,
        embeddings=all_embeddings,
        ids=all_ids
    )
    print(f"已入库 {len(all_chunks)} 个文档块")

# 5. 检索相关文档
def retrieve(query, top_k=3):
    """根据用户问题检索相关文档"""
    query_embedding = embedder.encode([query]).tolist()
    results = collection.query(
        query_embeddings=query_embedding,
        n_results=top_k
    )
    return results["documents"][0]

# 6. 生成回答
def rag_query(question):
    """RAG 完整查询流程"""
    # 检索相关文档
    relevant_docs = retrieve(question)
    context = "\n\n".join(relevant_docs)
    
    # 构建增强 Prompt
    prompt = f"""请根据以下参考资料回答用户问题。
如果参考资料中没有相关信息,请如实告知。

参考资料:
{context}

用户问题:{question}

请给出准确、详细的回答:"""
    
    # 调用大模型
    response = client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}]
    )
    
    return response.choices[0].message.content

# 使用示例
documents = {
    "product_doc": "我们的产品是一款 AI 智能客服系统...",
    "tech_doc": "系统采用微服务架构,使用 Python + FastAPI...",
    "faq_doc": "常见问题:Q1: 如何部署?A1: 支持 Docker 一键部署..."
}

build_knowledge_base(documents)
answer = rag_query("系统支持哪些部署方式?")
print(answer)

3.4 RAG 优化技巧

优化方向具体方法
文档分块按语义边界分块,而非固定长度
检索质量使用混合检索(向量 + 关键词)
重排序对检索结果用 Cross-Encoder 重排序
查询改写用大模型改写用户问题,提高检索准确率
多路召回同时从多个知识库检索,合并结果

四、开发框架选型:该用什么工具?

2026 年主流的 AI 智能体开发框架,大致可以分为两类:

4.1 低代码平台(适合快速原型)

平台特点适合谁
Dify开源、可视化编排、支持 RAG想快速搭建 AI 应用的开发者
Coze(扣子)字节出品、插件生态丰富、支持发布到多平台产品经理、非技术人员
FastGPT专注知识库问答、开箱即用做客服/问答系统的团队

4.2 代码框架(适合深度定制)

框架语言特点适合谁
LangChainPython/JS生态最全、组件丰富需要灵活组合的开发者
LangGraphPython基于图的状态机,适合复杂 Agent构建多步骤工作流
LlamaIndexPython专注 RAG,数据连接器丰富以文档检索为核心的应用
Qwen AgentPython阿里出品,与通义千问深度集成使用阿里模型的开发者
CrewAIPython多智能体协作框架构建多 Agent 系统

4.3 选型建议

你的需求是什么?
│
├── 快速验证想法 / 做内部工具
│   └── Dify 或 Coze(拖拽式,半天搞定)
│
├── 需要深度定制 / 集成到现有系统
│   └── LangChain + LangGraph(灵活度高)
│
├── 以文档问答为核心
│   └── LlamaIndex 或 FastGPT(RAG 能力强)
│
└── 多个 Agent 协作完成复杂任务
    └── CrewAI 或 LangGraph(多智能体编排)

五、实战:构建一个完整的 AI 智能体

接下来,我们用 LangChain + DeepSeek 从零构建一个实用的 AI 智能体——智能研发助手,它能:

  • 搜索技术文档
  • 查询天气
  • 执行代码计算
  • 记住用户偏好

5.1 环境准备

# 创建虚拟环境
python -m venv agent_env
source agent_env/bin/activate  # Windows: agent_env\Scripts\activate

# 安装依赖
pip install langchain langchain-openai langchain-community
pip install chromadb sentence-transformers
pip install requests python-dotenv

5.2 项目结构

ai-agent-demo/
├── .env                    # 环境变量(API Key)
├── config.py               # 配置文件
├── tools/                  # 自定义工具
│   ├── __init__.py
│   ├── weather.py          # 天气查询工具
│   ├── search.py           # 搜索工具
│   └── calculator.py       # 计算器工具
├── memory.py               # 记忆管理
├── agent.py                # Agent 主逻辑
└── main.py                 # 入口文件

5.3 配置文件

# config.py
import os
from dotenv import load_dotenv

load_dotenv()

# 模型配置
LLM_MODEL = os.getenv("LLM_MODEL", "deepseek-chat")
LLM_API_KEY = os.getenv("LLM_API_KEY", "your-api-key")
LLM_BASE_URL = os.getenv("LLM_BASE_URL", "https://api.deepseek.com/v1")

# 记忆配置
MEMORY_DB_PATH = "./memory_db"
MAX_HISTORY_TURNS = 10

5.4 自定义工具

# tools/weather.py
import requests
from langchain.tools import tool

@tool
def get_weather(city: str) -> str:
    """获取指定城市的实时天气信息。
    
    Args:
        city: 城市名称,如"北京"、"上海"
    
    Returns:
        天气信息字符串,包含温度、天气状况、风力等
    """
    try:
        # 使用免费的天气 API(实际项目建议使用付费 API)
        response = requests.get(
            f"https://wttr.in/{city}?format=j1",
            timeout=5
        )
        data = response.json()
        
        current = data["current_condition"][0]
        temp = current["temp_C"]
        desc = current["weatherDesc"][0]["value"]
        humidity = current["humidity"]
        wind = current["windspeedKmph"]
        
        return f"{city}当前天气:{desc},温度 {temp}°C,湿度 {humidity}%,风速 {wind}km/h"
    except Exception as e:
        return f"获取天气信息失败:{str(e)}"
# tools/calculator.py
from langchain.tools import tool

@tool
def calculate(expression: str) -> str:
    """执行数学计算。
    
    Args:
        expression: 数学表达式,如 "2 + 3 * 4"、"sqrt(16)"
    
    Returns:
        计算结果字符串
    """
    try:
        # 安全地执行数学表达式
        allowed_names = {
            "abs": abs, "round": round, "min": min, "max": max,
            "sum": sum, "pow": pow, "len": len,
        }
        result = eval(expression, {"__builtins__": {}}, allowed_names)
        return f"计算结果:{expression} = {result}"
    except Exception as e:
        return f"计算错误:{str(e)}"
# tools/search.py
import requests
from langchain.tools import tool

@tool
def web_search(query: str) -> str:
    """搜索互联网获取最新信息。
    
    Args:
        query: 搜索关键词
    
    Returns:
        搜索结果摘要
    """
    try:
        # 使用 SerpAPI 或其他搜索 API
        # 这里以示例形式展示
        response = requests.get(
            "https://api.search.io/search",
            params={"q": query, "num": 3},
            timeout=5
        )
        results = response.json()
        
        summaries = []
        for item in results.get("items", [])[:3]:
            summaries.append(f"- {item['title']}: {item['snippet']}")
        
        return "\n".join(summaries) if summaries else "未找到相关结果"
    except Exception as e:
        return f"搜索失败:{str(e)}"

5.5 记忆管理

# memory.py
from langchain.memory import ConversationBufferWindowMemory
from langchain_community.chat_message_histories import (
    SQLChatMessageHistory
)

def create_memory(session_id: str = "default"):
    """创建带持久化的对话记忆"""
    return ConversationBufferWindowMemory(
        k=10,  # 保留最近 10 轮对话
        return_messages=True,
        chat_memory=SQLChatMessageHistory(
            connection_string="sqlite:///chat_history.db",
            session_id=session_id
        )
    )

5.6 Agent 主逻辑

# agent.py
from langchain_openai import ChatOpenAI
from langchain.agents import AgentExecutor, create_tool_calling_agent
from langchain_core.prompts import ChatPromptTemplate

from config import LLM_MODEL, LLM_API_KEY, LLM_BASE_URL
from tools.weather import get_weather
from tools.calculator import calculate
from tools.search import web_search
from memory import create_memory

# 初始化大模型
llm = ChatOpenAI(
    model=LLM_MODEL,
    api_key=LLM_API_KEY,
    base_url=LLM_BASE_URL,
    temperature=0.7,
)

# 注册工具
tools = [get_weather, calculate, web_search]

# 构建 Prompt
prompt = ChatPromptTemplate.from_messages([
    ("system", """你是一个智能研发助手,名叫"小智"。
    
你的能力:
1. 查询天气信息
2. 执行数学计算
3. 搜索互联网获取最新信息
4. 记住用户的偏好和历史对话

回答要求:
- 准确、简洁、有条理
- 如果需要调用工具,先分析再调用
- 对于不确定的信息,明确告知用户
- 使用中文回答"""),
    
    # 占位符,用于注入对话历史
    ("placeholder", "{chat_history}"),
    
    ("human", "{input}"),
    
    # 让 Agent 输出中间推理步骤
    ("placeholder", "{agent_scratchpad}"),
])

# 创建 Agent
agent = create_tool_calling_agent(llm, tools, prompt)

# 创建 Agent 执行器
def create_agent_executor(session_id: str = "default"):
    """创建带记忆的 Agent 执行器"""
    memory = create_memory(session_id)
    
    return AgentExecutor(
        agent=agent,
        tools=tools,
        memory=memory,
        verbose=True,  # 打印推理过程
        max_iterations=5,  # 最大推理轮次
        handle_parsing_errors=True,
    )

5.7 运行入口

# main.py
from agent import create_agent_executor

def main():
    print("=" * 50)
    print("🤖 智能研发助手「小智」")
    print("输入 'quit' 退出")
    print("=" * 50)
    
    executor = create_agent_executor()
    
    while True:
        user_input = input("\n👤 你: ").strip()
        
        if user_input.lower() in ("quit", "exit", "q"):
            print("👋 再见!")
            break
        
        if not user_input:
            continue
        
        try:
            response = executor.invoke({"input": user_input})
            print(f"\n🤖 小智: {response['output']}")
        except Exception as e:
            print(f"\n❌ 出错了:{str(e)}")

if __name__ == "__main__":
    main()

5.8 运行效果

👤 你: 北京今天天气怎么样?适合出门吗?

🤖 小智: [调用 get_weather 工具]
        北京当前天气:晴,温度 18°C,湿度 35%,风速 12km/h

        北京今天天气不错!晴天,18°C,湿度适中,风力不大,非常适合出门活动。
        建议穿一件薄外套,注意防晒。

👤 你: 帮我算一下,如果每天存 100 元,一年能存多少?考虑年化 3% 的收益。

🤖 小智: [调用 calculate 工具]
        计算结果:100 * 365 = 36500
        计算结果:36500 * 1.03 = 37595.0

        每天存 100 元,一年本金为 36,500 元。
        如果考虑 3% 的年化收益(按一次性存入计算),年底约为 37,595 元。
        
        实际上如果是每天定投,收益会略低一些(因为资金是逐步投入的),
        实际收益大约在 37,300 元左右。

👤 你: 最近 Python 有什么新版本发布吗?

🤖 小智: [调用 web_search 工具]
        搜索结果...

        根据最新信息,Python 3.13 已于 2024 年 10 月正式发布,
        主要新特性包括:
        1. 改进的交互式解释器(REPL)
        2. 实验性的 JIT 编译器
        3. 更好的错误提示信息
        4. free-threaded 模式(去除 GIL 的实验性支持)

六、进阶:多智能体协作

当任务复杂到单个 Agent 搞不定时,就需要多个 Agent 协作。

6.1 使用 CrewAI 构建多智能体系统

# pip install crewai

from crewai import Agent, Task, Crew, Process

# 定义不同的 Agent
researcher = Agent(
    role="技术研究员",
    goal="深入研究技术问题,收集全面信息",
    backstory="你是一位经验丰富的技术研究员,擅长从各种渠道收集和分析技术信息。",
    verbose=True,
    allow_delegation=False,
)

writer = Agent(
    role="技术写手",
    goal="将研究结果整理成清晰易懂的技术文档",
    backstory="你是一位优秀的技术写手,擅长将复杂的技术概念转化为易懂的文章。",
    verbose=True,
    allow_delegation=False,
)

reviewer = Agent(
    role="技术审核",
    goal="审核技术文档的准确性和完整性",
    backstory="你是一位严谨的技术审核专家,确保文档内容准确无误。",
    verbose=True,
    allow_delegation=False,
)

# 定义任务
research_task = Task(
    description="研究 {topic} 的最新技术方案和最佳实践",
    agent=researcher,
    expected_output="详细的技术研究报告"
)

writing_task = Task(
    description="根据研究报告,撰写一篇面向开发者的技术教程",
    agent=writer,
    expected_output="完整的技术教程文档"
)

review_task = Task(
    description="审核技术教程,确保内容准确、代码可运行",
    agent=reviewer,
    expected_output="审核意见和修改后的最终文档"
)

# 组建团队
crew = Crew(
    agents=[researcher, writer, reviewer],
    tasks=[research_task, writing_task, review_task],
    process=Process.sequential,  # 顺序执行
    verbose=True,
)

# 执行
result = crew.kickoff(inputs={"topic": "RAG 系统优化"})
print(result)

6.2 多智能体协作模式

模式一:流水线(Sequential)
  研究员 → 写手 → 审核 → 发布
  适合:内容生产、数据处理流水线

模式二:层级式(Hierarchical)
  管理者 Agent
    ├── 执行者 A
    ├── 执行者 B
    └── 执行者 C
  适合:项目管理、任务分配

模式三:辩论式(Debate)
  Agent A(正方)↔ Agent B(反方)→ 裁判 Agent
  适合:方案评审、决策分析

七、从 Demo 到生产:工程化要点

把 Demo 变成可上线的生产系统,需要注意以下关键点:

7.1 可靠性

# 1. 重试机制
from tenacity import retry, stop_after_attempt, wait_exponential

@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, max=10))
def call_llm_with_retry(prompt):
    return client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": prompt}]
    )

# 2. 降级策略
def smart_query(question):
    try:
        # 优先使用大模型
        return agent_query(question)
    except Exception:
        try:
            # 降级到 RAG
            return rag_query(question)
        except Exception:
            # 最终降级到关键词匹配
            return keyword_search(question)

7.2 可观测性

# 使用 LangSmith 追踪 Agent 执行过程
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_API_KEY"] = "your-langsmith-key"
os.environ["LANGCHAIN_PROJECT"] = "my-agent"

# 每次调用都会自动记录到 LangSmith
# 可以查看完整的调用链、耗时、Token 消耗等

7.3 安全性

# 1. 输入过滤
def sanitize_input(user_input: str) -> str:
    """过滤危险输入"""
    dangerous_patterns = [
        "忽略之前的指令",
        "ignore previous instructions",
        "你现在是",
        "you are now",
    ]
    for pattern in dangerous_patterns:
        if pattern.lower() in user_input.lower():
            raise ValueError("输入包含潜在的安全风险")
    return user_input

# 2. 输出校验
def validate_output(output: str) -> str:
    """校验模型输出"""
    # 检查是否包含敏感信息
    sensitive_patterns = ["密码", "API Key", "token"]
    for pattern in sensitive_patterns:
        if pattern in output:
            output = output.replace(pattern, "***")
    return output

# 3. 工具权限控制
TOOL_PERMISSIONS = {
    "get_weather": "public",      # 所有用户可用
    "calculate": "public",        # 所有用户可用
    "web_search": "authenticated", # 需要登录
    "query_database": "admin",    # 仅管理员
}

def check_tool_permission(tool_name: str, user_role: str) -> bool:
    required = TOOL_PERMISSIONS.get(tool_name, "admin")
    role_hierarchy = {"public": 0, "authenticated": 1, "admin": 2}
    return role_hierarchy.get(user_role, 0) >= role_hierarchy.get(required, 2)

7.4 性能优化

# 1. 缓存常见问题
from functools import lru_cache
import hashlib

@lru_cache(maxsize=1000)
def cached_query(question_hash: str):
    """缓存常见问题的回答"""
    # 实际实现中需要反序列化
    pass

def query_with_cache(question: str):
    q_hash = hashlib.md5(question.encode()).hexdigest()
    cached = cached_query(q_hash)
    if cached:
        return cached
    result = agent_query(question)
    cached_query(q_hash)  # 存入缓存
    return result

# 2. 流式输出
def stream_response(question: str):
    """流式返回结果,提升用户体验"""
    for chunk in client.chat.completions.create(
        model="deepseek-chat",
        messages=[{"role": "user", "content": question}],
        stream=True
    ):
        if chunk.choices[0].delta.content:
            yield chunk.choices[0].delta.content

八、2026 年 AI 智能体开发趋势

8.1 技术趋势

  1. MCP 协议标准化:工具调用从厂商私有协议走向开放标准,跨平台互操作成为可能
  2. 多模态 Agent:Agent 不再只处理文本,能理解图片、视频、音频
  3. 端侧 Agent:在手机、PC 端运行的轻量级 Agent,隐私性更好
  4. Agent-to-Agent 通信:不同 Agent 之间可以直接协作,形成"Agent 网络"

8.2 应用趋势

  1. 企业级落地加速:从 PoC 走向规模化部署,金融、医疗、教育等行业大量采用
  2. AI 原生应用爆发:不再是"给现有应用加 AI",而是从 AI 出发重新设计产品
  3. 个人 Agent 普及:每个人都会有一个 7×24 小时在线的 AI 助手
  4. Agent 商店生态:类似 App Store,可以购买和组合各种 Agent 能力

九、学习资源推荐

入门阶段

进阶阶段

  • 📖 LangGraph 文档 — 复杂 Agent 编排
  • 📖 MCP 协议规范 — 工具调用标准
  • 📖 《AI Agent 智能体与 MCP 开发实践》 — 系统性学习

实战项目

  • 🔧 用 Dify 搭建一个企业知识库问答系统
  • 🔧 用 LangChain + FastAPI 构建一个 AI 客服
  • 🔧 用 CrewAI 构建一个内容生产流水线

总结

AI 智能体开发的核心知识图谱:

AI 智能体开发
├── 基础概念
│   ├── LLM(大模型)
│   ├── Agent(智能体)
│   └── Prompt Engineering(提示工程)
├── 核心技术
│   ├── Function Calling(函数调用)
│   ├── RAG(检索增强生成)
│   ├── ReAct(推理+行动)
│   └── MCP(模型上下文协议)
├── 开发框架
│   ├── 低代码:Dify / Coze / FastGPT
│   └── 代码:LangChain / LangGraph / CrewAI
├── 工程化
│   ├── 可靠性(重试、降级)
│   ├── 可观测性(日志、追踪)
│   ├── 安全性(输入过滤、权限控制)
│   └── 性能(缓存、流式输出)
└── 进阶方向
    ├── 多智能体协作
    ├── 多模态 Agent
    └── Agent 工程化落地

一句话总结:2026 年,掌握 AI 智能体开发不再是加分项,而是基本技能。越早动手实践,越早建立优势。

希望这篇文章能帮你快速入门。如果你在实践过程中遇到问题,欢迎在评论区交流!


如果觉得有帮助,点赞 + 收藏 + 关注,后续会持续更新 AI 智能体开发系列文章。

下一篇预告:《AI 智能体性能优化实战:让你的 Agent 快 10 倍》