跳转至

Agent开发基础

⚠️ 时效性说明:本章涉及前沿模型/价格/榜单等信息,可能随版本快速变化;请以论文原文、官方发布页和 API 文档为准。

Agent开发基础图

📌 定位说明:本章从框架使用视角讲解Agent开发(LangChain/LangGraph等)。 - 动手实践(手写Agent框架、从零编码)→ AI Agent开发实战/01-Agent基础与架构 - 研究前沿(智能体系统最新进展)→ LLM学习/04-前沿探索/02-智能体系统

📖 章节导读

AI Agent是能够自主感知环境、做出决策并执行行动的智能系统。本章将深入探讨Agent的核心概念、架构设计和开发方法。

🎯 学习目标

  • 理解Agent的核心概念和原理
  • 掌握Agent的架构设计方法
  • 学会开发基础的Agent系统
  • 了解Agent的应用场景
  • 掌握大厂面试中的相关问题

7.1 Agent概述

7.1.1 什么是Agent

定义:Agent(AI智能体)是能够自主感知环境、推理决策并执行行动以实现目标的智能系统。

核心特征:

  1. 自主性:能够自主做出决策
  2. 感知能力:能够感知环境和状态
  3. 推理能力:能够进行推理和规划
  4. 行动能力:能够执行具体行动
  5. 学习能力:能够从经验中学习

Agent vs 传统程序:

特性 Agent 传统程序
决策方式 自主决策 预设规则
适应性
学习能力
复杂性
应用场景 复杂任务 简单任务

7.1.2 Agent的发展历程

关键里程碑:

早期(1950s-1980s): - 符号AI:基于规则的Agent - 专家系统:领域知识Agent - 有限能力,固定规则

中期(1990s-2010s): - 强化学习Agent:通过学习优化 - 多Agent系统:协作与竞争 - 能力提升,但仍有局限

现代(2020s-至今): - 大模型Agent:基于大语言模型 - 通用Agent:跨领域应用 - 强大的推理和规划能力

7.1.3 Agent的类型

按功能分类:

  1. 反应型Agent:
  2. 基于当前状态直接行动
  3. 无内部状态
  4. 简单快速

  5. 基于模型的Agent:

  6. 维护内部世界模型
  7. 基于模型预测和规划
  8. 更智能

  9. 基于目标的Agent:

  10. 有明确的目标
  11. 规划实现目标的路径
  12. 目标驱动

  13. 基于效用的Agent:

  14. 有效用函数
  15. 最大化期望效用
  16. 最优决策

按应用分类:

  1. 对话Agent:ChatGPT、Claude
  2. 任务Agent:AutoGPT、BabyAGI
  3. 推荐Agent:个性化推荐
  4. 游戏Agent:游戏AI
  5. 机器人Agent:物理机器人

7.2 Agent架构

7.2.1 基础架构

核心组件:

Text Only
感知 → 推理 → 规划 → 行动 → 反馈

详细架构:

  1. 感知模块:
  2. 输入接收
  3. 信息处理
  4. 状态更新

  5. 推理模块:

  6. 上下文理解
  7. 逻辑推理
  8. 决策制定

  9. 规划模块:

  10. 目标分解
  11. 任务规划
  12. 行动序列

  13. 执行模块:

  14. 工具调用
  15. 行动执行
  16. 结果反馈

  17. 记忆模块:

  18. 短期记忆
  19. 长期记忆
  20. 知识库

代码实现:

Python
from typing import Any
from abc import ABC, abstractmethod

class BaseAgent(ABC):  # ABC抽象基类,定义接口规范
    """基础Agent类"""

    def __init__(self, name: str):
        """
        初始化Agent

        Args:
            name: Agent名称
        """
        self.name = name
        self.memory = {}
        self.tools = {}

    @abstractmethod  # @abstractmethod子类必须实现此方法
    def perceive(self, input_data: dict) -> dict:
        """
        感知环境

        Args:
            input_data: 输入数据

        Returns:
            感知结果
        """
        pass

    @abstractmethod
    def reason(self, perception: dict) -> dict:
        """
        推理决策

        Args:
            perception: 感知结果

        Returns:
            推理结果
        """
        pass

    @abstractmethod
    def plan(self, reasoning: dict) -> list[dict]:
        """
        规划行动

        Args:
            reasoning: 推理结果

        Returns:
            行动计划
        """
        pass

    @abstractmethod
    def act(self, action: dict) -> dict:
        """
        执行行动

        Args:
            action: 行动

        Returns:
            执行结果
        """
        pass

    def run(self, input_data: dict) -> dict:
        """
        运行Agent

        Args:
            input_data: 输入数据

        Returns:
            执行结果
        """
        # 感知
        perception = self.perceive(input_data)

        # 推理
        reasoning = self.reason(perception)

        # 规划
        plan = self.plan(reasoning)

        # 执行
        results = []
        for action in plan:
            result = self.act(action)
            results.append(result)

        return {
            'perception': perception,
            'reasoning': reasoning,
            'plan': plan,
            'results': results
        }

7.2.2 LangChain Agent

简介:LangChain提供了强大的Agent框架,简化了Agent开发。

核心组件:

  1. LLM:大语言模型
  2. Tools:工具集合
  3. Agent:Agent逻辑
  4. Chain:执行链

代码实现:

Python
from langchain.agents import AgentExecutor, create_react_agent
from langchain_core.tools import Tool
from langchain_openai import ChatOpenAI
from langchain_community.utilities import SerpAPIWrapper
from langchain_core.prompts import ChatPromptTemplate

class LangChainAgent:
    """LangChain Agent(使用 create_react_agent,替代已弃用的 initialize_agent)"""

    def __init__(self, api_key: str, tools: list[Tool]):
        """
        初始化Agent

        Args:
            api_key: OpenAI API密钥
            tools: 工具列表
        """
        self.llm = ChatOpenAI(
            model_name="gpt-4o",
            temperature=0,
            openai_api_key=api_key
        )

        # 构建ReAct提示模板
        prompt = ChatPromptTemplate.from_messages([
            ("system", "你是一个有用的AI助手。请按照ReAct模式(思考→行动→观察)来解决问题。\n\n"
                       "你可以使用以下工具:\n{tools}\n\n工具名: {tool_names}\n\n"
                       "Use the following format:\n"
                       "Thought: 思考下一步\nAction: 工具名\nAction Input: 工具输入\n"
                       "Observation: 工具输出\n... (可重复)\nThought: 我现在知道最终答案了\n"
                       "Final Answer: 最终答案"),
            ("human", "{input}\n\n{agent_scratchpad}"),
        ])

        agent = create_react_agent(self.llm, tools, prompt)
        self.agent_executor = AgentExecutor(
            agent=agent, tools=tools, verbose=True
        )

    def run(self, task: str) -> str:
        """
        运行Agent

        Args:
            task: 任务描述

        Returns:
            执行结果
        """
        result = self.agent_executor.invoke({"input": task})
        return result["output"]

# 使用示例
# 创建工具
search = SerpAPIWrapper()
search_tool = Tool(
    name="Search",
    func=search.run,
    description="用于搜索最新信息"
)

# 创建Agent
# agent = LangChainAgent("your-api-key", [search_tool])
#
# # 运行任务
# result = agent.run("搜索最新的AI技术进展")
# print(result)

7.2.3 自定义Agent

设计原则:

  1. 模块化:将功能分解为独立模块
  2. 可扩展:易于添加新功能
  3. 可配置:支持灵活配置
  4. 可测试:易于测试和调试

代码实现:

Python
import time
from openai import OpenAI

class CustomAgent:
    """自定义Agent"""

    def __init__(self, name: str, llm_client):
        """
        初始化Agent

        Args:
            name: Agent名称
            llm_client: LLM客户端
        """
        self.name = name
        self.llm_client = llm_client
        self.memory = []
        self.tools = {}

    def add_tool(self, name: str, func: callable, description: str):
        """
        添加工具

        Args:
            name: 工具名称
            func: 工具函数
            description: 工具描述
        """
        self.tools[name] = {
            'func': func,
            'description': description
        }

    def perceive(self, input_data: dict) -> dict:
        """
        感知环境
        """
        perception = {
            'input': input_data,
            'timestamp': time.time(),
            'context': self.memory[-5:] if self.memory else []
        }
        return perception

    def reason(self, perception: dict) -> dict:
        """
        推理决策
        """
        # 构建推理Prompt
        tools_info = "\n".join([
            f"- {name}: {info['description']}"
            for name, info in self.tools.items()
        ])

        prompt = f"""
你是一个智能Agent,名为{self.name}

可用工具:
{tools_info}

当前任务: {perception['input']['task']}

上下文:
{perception['context']}

请分析任务,决定需要使用哪些工具,以及如何使用。
"""

        response = self.llm_client.chat.completions.create(
            model="gpt-4o",
            messages=[{"role": "user", "content": prompt}],
            temperature=0.3
        )

        reasoning = response.choices[0].message.content

        return {
            'reasoning': reasoning,
            'tools_needed': self._extract_tools(reasoning)
        }

    def _extract_tools(self, reasoning: str) -> list[str]:
        """从推理中提取需要的工具"""
        import re
        tools = re.findall(r'使用\s*(\w+)', reasoning)  # re.findall正则查找所有匹配项
        return tools

    def plan(self, reasoning: dict) -> list[dict]:
        """
        规划行动
        """
        plan = []
        for tool_name in reasoning['tools_needed']:
            if tool_name in self.tools:
                plan.append({
                    'tool': tool_name,
                    'action': 'call_tool',
                    'params': {}
                })
        return plan

    def act(self, action: dict) -> dict:
        """
        执行行动
        """
        tool_name = action['tool']
        if tool_name in self.tools:
            tool_func = self.tools[tool_name]['func']
            result = tool_func(**action.get('params', {}))

            # 记录到记忆
            self.memory.append({
                'tool': tool_name,
                'result': result,
                'timestamp': time.time()
            })

            return {
                'success': True,
                'result': result
            }
        else:
            return {
                'success': False,
                'error': f'Tool {tool_name} not found'
            }

    def run(self, task: str) -> dict:
        """
        运行Agent
        """
        input_data = {'task': task}

        # 感知
        perception = self.perceive(input_data)

        # 推理
        reasoning = self.reason(perception)

        # 规划
        plan = self.plan(reasoning)

        # 执行
        results = []
        for action in plan:
            result = self.act(action)
            results.append(result)

        return {
            'task': task,
            'perception': perception,
            'reasoning': reasoning,
            'plan': plan,
            'results': results
        }

# 使用示例
# 创建LLM客户端
llm_client = OpenAI(api_key="your-api-key")

# 创建Agent
agent = CustomAgent("助手", llm_client)

# 添加工具
def search_tool(query: str) -> str:
    """搜索工具"""
    return f"搜索结果: {query}"

def calculator_tool(expression: str) -> float:
    """计算器工具(使用AST安全解析)"""
    import ast
    tree = ast.parse(expression, mode='eval')
    for node in ast.walk(tree):
        if not isinstance(node, (ast.Expression, ast.BinOp, ast.UnaryOp,  # isinstance检查类型
                                ast.Constant, ast.Add, ast.Sub, ast.Mult,
                                ast.Div, ast.Mod, ast.Pow, ast.USub)):
            raise ValueError(f"不允许的表达式: {expression}")
    return eval(compile(tree, '<expr>', 'eval'), {"__builtins__": {}}, {})

agent.add_tool("search", search_tool, "用于搜索信息")
agent.add_tool("calculator", calculator_tool, "用于数学计算")

# 运行任务
result = agent.run("计算 2 + 3 * 4")
print(result)

7.3 Agent工具

7.3.1 工具类型

常用工具:

  1. 搜索工具:
  2. 网络搜索
  3. 知识库搜索
  4. 文档搜索

  5. 计算工具:

  6. 数学计算
  7. 数据分析
  8. 统计分析

  9. API工具:

  10. 天气API
  11. 股票API
  12. 新闻API

  13. 文件工具:

  14. 文件读写
  15. 文件处理
  16. 文件转换

  17. 数据库工具:

  18. 数据库查询
  19. 数据库更新
  20. 数据分析

7.3.2 工具开发

设计原则:

  1. 单一职责:每个工具只做一件事
  2. 清晰接口:接口清晰易用
  3. 错误处理:完善的错误处理
  4. 文档完整:提供完整文档

代码实现:

Python
from typing import Any
from abc import ABC, abstractmethod

class BaseTool(ABC):
    """基础工具类"""

    def __init__(self, name: str, description: str):
        """
        初始化工具

        Args:
            name: 工具名称
            description: 工具描述
        """
        self.name = name
        self.description = description

    @abstractmethod
    def run(self, **kwargs) -> Any:  # **kwargs收集关键字参数
        """
        运行工具

        Args:
            **kwargs: 参数

        Returns:
            执行结果
        """
        pass

    def __call__(self, **kwargs) -> Any:  # __call__魔术方法:使实例可像函数一样调用,tool(...)等价于tool.run(...)
        """调用工具"""
        return self.run(**kwargs)  # **kwargs将收集的关键字参数解包后传给run方法

class SearchTool(BaseTool):
    """搜索工具"""

    def __init__(self):
        super().__init__(  # super()调用父类方法
            name="search",
            description="用于搜索网络信息"
        )

    def run(self, query: str, num_results: int = 5) -> list:
        """
        搜索

        Args:
            query: 搜索查询
            num_results: 返回结果数量

        Returns:
            搜索结果列表
        """
        # 这里简化处理,实际应该调用搜索API
        results = [
            {
                'title': f'结果{i+1}',
                'url': f'https://example.com/{i+1}',
                'snippet': f'关于"{query}"的搜索结果{i+1}'
            }
            for i in range(num_results)
        ]
        return results

class CalculatorTool(BaseTool):
    """计算器工具"""

    def __init__(self):
        super().__init__(
            name="calculator",
            description="用于数学计算"
        )

    def run(self, expression: str) -> float:
        """
        计算(使用AST安全解析)

        Args:
            expression: 数学表达式

        Returns:
            计算结果
        """
        import ast
        try:  # try/except捕获异常,防止程序崩溃
            tree = ast.parse(expression, mode='eval')
            for node in ast.walk(tree):
                if not isinstance(node, (ast.Expression, ast.BinOp, ast.UnaryOp,
                                        ast.Constant, ast.Add, ast.Sub, ast.Mult,
                                        ast.Div, ast.Mod, ast.Pow, ast.USub)):
                    raise ValueError(f"不允许的表达式: {expression}")
            result = eval(compile(tree, '<expr>', 'eval'), {"__builtins__": {}}, {})
            return float(result)
        except Exception as e:
            raise ValueError(f"计算错误: {str(e)}")

class WeatherTool(BaseTool):
    """天气工具"""

    def __init__(self, api_key: str):
        super().__init__(
            name="weather",
            description="用于查询天气信息"
        )
        self.api_key = api_key

    def run(self, city: str) -> dict:
        """
        查询天气

        Args:
            city: 城市名称

        Returns:
            天气信息
        """
        # 这里简化处理,实际应该调用天气API
        return {
            'city': city,
            'temperature': 25,
            'condition': '晴',
            'humidity': 60
        }

# 使用示例
search_tool = SearchTool()
calculator_tool = CalculatorTool()
weather_tool = WeatherTool("your-api-key")

# 使用工具
results = search_tool(query="AI技术", num_results=3)
print("搜索结果:", results)

result = calculator_tool(expression="2 + 3 * 4")
print("计算结果:", result)

weather = weather_tool(city="北京")
print("天气信息:", weather)

7.4 Agent应用

7.4.1 对话Agent

需求:构建一个能够进行多轮对话的Agent。

实现:

Python
class ConversationalAgent:
    """对话Agent"""

    def __init__(self, llm_client, system_prompt: str = None):
        """
        初始化对话Agent

        Args:
            llm_client: LLM客户端
            system_prompt: 系统提示
        """
        self.llm_client = llm_client
        self.system_prompt = system_prompt or "你是一个友好的助手。"
        self.conversation_history = []

    def chat(self, user_message: str) -> str:
        """
        对话

        Args:
            user_message: 用户消息

        Returns:
            Agent回复
        """
        # 添加用户消息到历史
        self.conversation_history.append({
            'role': 'user',
            'content': user_message
        })

        # 构建消息列表
        messages = [
            {'role': 'system', 'content': self.system_prompt}
        ] + self.conversation_history

        # 调用LLM
        response = self.llm_client.chat.completions.create(
            model="gpt-4o",
            messages=messages,
            temperature=0.7
        )

        assistant_message = response.choices[0].message.content

        # 添加助手消息到历史
        self.conversation_history.append({
            'role': 'assistant',
            'content': assistant_message
        })

        return assistant_message

    def reset(self):
        """重置对话"""
        self.conversation_history = []

# 使用示例
from openai import OpenAI

llm_client = OpenAI(api_key="your-api-key")
agent = ConversationalAgent(
    llm_client,
    system_prompt="你是一个专业的AI助手,擅长回答技术问题。"
)

# 对话
while True:
    user_input = input("用户: ")
    if user_input.lower() in ['exit', 'quit']:
        break

    response = agent.chat(user_input)
    print(f"助手: {response}")

7.4.2 任务Agent

需求:构建一个能够执行复杂任务的Agent。

实现:

Python
class TaskAgent:
    """任务Agent"""

    def __init__(self, llm_client, tools: dict[str, BaseTool]):
        """
        初始化任务Agent

        Args:
            llm_client: LLM客户端
            tools: 工具字典
        """
        self.llm_client = llm_client
        self.tools = tools
        self.task_queue = []

    def add_task(self, task: str):
        """
        添加任务

        Args:
            task: 任务描述
        """
        self.task_queue.append(task)

    def plan_tasks(self, tasks: list[str]) -> list[dict]:
        """
        规划任务

        Args:
            tasks: 任务列表

        Returns:
            任务计划
        """
        tools_info = "\n".join([
            f"- {name}: {tool.description}"
            for name, tool in self.tools.items()
        ])

        prompt = f"""
你是一个任务规划专家。请为以下任务制定执行计划。

可用工具:
{tools_info}

任务列表:
{chr(10).join(f"{i+1}. {task}" for i, task in enumerate(tasks))}

请为每个任务指定需要使用的工具,并说明执行顺序。
"""

        response = self.llm_client.chat.completions.create(
            model="gpt-4o",
            messages=[{"role": "user", "content": prompt}],
            temperature=0.3
        )

        plan = response.choices[0].message.content
        return self._parse_plan(plan)

    def _parse_plan(self, plan_text: str) -> list[dict]:
        """解析计划"""
        # 这里简化处理
        import re
        tasks = re.findall(r'(\d+)\.\s*(.+)', plan_text)
        return [
            {
                'task_id': int(task_id),
                'task': task,
                'status': 'pending'
            }
            for task_id, task in tasks
        ]

    def execute_task(self, task: dict) -> dict:
        """
        执行任务

        Args:
            task: 任务信息

        Returns:
            执行结果
        """
        # 这里简化处理,实际应该根据任务选择合适的工具
        return {
            'task': task,
            'status': 'completed',
            'result': f"完成任务: {task['task']}"
        }

    def run(self) -> list[dict]:
        """
        运行所有任务

        Returns:
            执行结果列表
        """
        if not self.task_queue:
            return []

        # 规划任务
        plan = self.plan_tasks(self.task_queue)

        # 执行任务
        results = []
        for task in plan:
            result = self.execute_task(task)
            results.append(result)

        return results

# 使用示例
tools = {
    'search': SearchTool(),
    'calculator': CalculatorTool(),
    'weather': WeatherTool("your-api-key")
}

agent = TaskAgent(llm_client, tools)

# 添加任务
agent.add_task("搜索AI技术进展")
agent.add_task("计算 2 + 3 * 4")
agent.add_task("查询北京天气")

# 运行任务
results = agent.run()
print("执行结果:")
for result in results:
    print(result)

7.5 练习题

练习题1:基础Agent

题目:实现一个简单的Agent,能够感知输入、推理决策并执行行动。

参考答案:

Python
class SimpleAgent:
    """简单Agent"""

    def __init__(self, name: str):
        self.name = name
        self.memory = []

    def perceive(self, input_data: str) -> str:
        """感知"""
        return f"感知到: {input_data}"

    def reason(self, perception: str) -> str:
        """推理"""
        return f"基于{perception},决定执行相应行动"

    def act(self, reasoning: str) -> str:
        """行动"""
        return f"执行: {reasoning}"

    def run(self, input_data: str) -> str:
        """运行"""
        perception = self.perceive(input_data)
        reasoning = self.reason(perception)
        action = self.act(reasoning)
        return action

练习题2:工具开发

题目:开发一个工具,用于查询股票价格。

参考答案:

Python
class StockTool(BaseTool):
    """股票工具"""

    def __init__(self, api_key: str):
        super().__init__(
            name="stock",
            description="用于查询股票价格"
        )
        self.api_key = api_key

    def run(self, symbol: str) -> dict:
        """
        查询股票

        Args:
            symbol: 股票代码

        Returns:
            股票信息
        """
        # 这里简化处理,实际应该调用股票API
        return {
            'symbol': symbol,
            'price': 100.0,
            'change': 2.5,
            'change_percent': 2.56
        }

7.6 面试准备

7.6.1 大厂面试题

字节跳动面试题:

  1. 问题:什么是Agent?它有什么特点?

参考答案: - Agent是能够自主感知、推理和行动的智能系统 - 特点: - 自主性:自主决策 - 感知能力:感知环境 - 推理能力:推理决策 - 行动能力:执行行动 - 学习能力:从经验学习

  1. 问题:Agent和传统程序有什么区别?

参考答案: - 决策方式:自主 vs 预设 - 适应性:强 vs 弱 - 学习能力:有 vs 无 - 复杂性:高 vs 低

腾讯面试题:

  1. 问题:如何设计一个Agent系统?

参考答案: - 需求分析:明确应用场景 - 架构设计:设计模块化架构 - 工具开发:开发所需工具 - 推理设计:设计推理逻辑 - 测试优化:测试和优化 - 部署监控:部署并监控

  1. 问题:Agent有哪些应用场景?

参考答案: - 对话系统:智能客服 - 任务自动化:自动执行任务 - 推荐系统:个性化推荐 - 游戏:游戏AI - 机器人:物理机器人

阿里巴巴面试题:

  1. 问题:LangChain Agent有什么优势?

参考答案: - 简化开发:提供现成框架 - 工具丰富:内置多种工具 - 易于扩展:易于添加新工具 - 社区支持:活跃的社区

  1. 问题:如何优化Agent的性能?

参考答案: - 工具优化:优化工具性能 - 缓存优化:缓存结果 - 并行执行:并行执行任务 - 推理优化:优化推理逻辑 - 记忆管理:优化记忆存储

7.6.2 面试技巧

技巧1:理论联系实际

结合实际项目经验,说明如何应用Agent解决实际问题。

技巧2:架构设计

展示Agent架构设计能力,说明模块划分和交互。

技巧3:工具开发

说明工具开发的经验,展示工程能力。

技巧4:持续优化

说明如何通过监控和反馈持续优化Agent。

📝 本章小结

本章系统介绍了Agent开发的核心内容:

  1. ✅ Agent概述:定义、发展历程、类型
  2. ✅ Agent架构:基础架构、LangChain Agent、自定义Agent
  3. ✅ Agent工具:工具类型、工具开发
  4. ✅ Agent应用:对话Agent、任务Agent
  5. ✅ 练习题:基础Agent、工具开发
  6. ✅ 面试准备:大厂面试题和解答技巧

通过本章学习,你应该能够: - 理解Agent的核心概念和原理 - 掌握Agent的架构设计方法 - 学会开发基础的Agent系统 - 了解Agent的应用场景 - 准备好应对大厂面试

🔗 下一步

下一章我们将深入学习LangChain框架,掌握如何使用LangChain构建复杂应用。

继续学习: 08-LangChain框架.md

💡 思考题

  1. Agent的核心特征是什么?

    ①自主性:能独立决策执行,无需人工逐步指令 ②工具使用:能调用API/搜索/代码执行等外部工具 ③规划能力:复杂任务自动分解为子任务 ④记忆:维护短期(对话)和长期(经验)记忆 ⑤反思:能评估结果并自我纠正。核心循环:感知→思考→行动→观察(ReAct范式)。

  2. Agent和传统程序有什么区别?

    传统程序:固定逻辑(if/else)、确定性输出、预定义流程。Agent:动态决策(LLM驱动)、概率性输出、根据环境反馈调整行为。关键差异:Agent的"控制流"由LLM在运行时决定,而非硬编码。但Agent也因此更难调试和保证一致性。

  3. 如何设计一个Agent系统?

    核心组件:①LLM大脑(GPT-4o/Claude) ②系统提示词(角色+能力边界) ③工具集(Function Calling) ④记忆模块(对话历史+向量存储) ⑤规划模块(ReAct/Plan-and-Execute)。设计原则:最小权限原则、失败回退机制、人机协作(Human-in-the-loop)、可观测性(日志+追踪)。

  4. Agent有哪些应用场景?

    代码助手(Cursor/GitHub Copilot)、数据分析(自动写SQL+可视化)、客服机器人(查订单+退款)、研究助手(搜索+总结+引用)、自动化运维(监控+告警+修复)。最成熟领域:代码生成和数据分析,因为反馈明确(代码能运行/结果可验证)。

  5. 在实际项目中如何应用Agent?

    生产要点:①从简单场景开始,逐步增加工具 ②严格定义工具的输入输出Schema ③设置最大迭代次数防止无限循环 ④关键操作加Human-in-the-loop确认 ⑤全链路可观测(LangSmith/Phoenix) ⑥成本控制(Token预算)。框架选择:LangGraph(灵活)、CrewAI(多Agent)、AutoGen(微软)。

📚 参考资料

  1. LangChain Documentation
  2. AutoGPT Documentation
  3. BabyAGI Documentation
  4. "ReAct: Synergizing Reasoning and Acting in Language Models" - Yao et al.
  5. OpenAI Documentation

最后更新日期:2026-02-12 适用版本:LLM应用指南 v2026