找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 295|回复: 0

AI Agent入门实战笔记(1):从概念到代码的完整指南

[复制链接]
发表于 2025-6-29 16:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
作者:微信文章
AI智能体入门实战:从概念到代码的完整指南

写在最前——本系列的主要内容


近几日我正在从案例角度深刻学习AutoGen以及LangChain,深刻意识到技术正在改变人类的社会。

在Github上有微软最新开源的Agent构建课程,我们庆幸自己能够勉强与时代进度接轨,因此撰写了这门课程总结
本系列课程将带您深入探索如何运用AutoGen与LangChain,从零到一构建起强大的智能体协作系统。全系列共11节课,内容与微软在GitHub上的官方教学项目保持同步,确保了知识的权威性与前沿性。
什么是AI Agent?与ChatGPT有何不同?


AI Agent(智能体)正在成为AI应用的下一个风口,但很多人对它的理解还停留在"更强的ChatGPT"层面。实际上,AI Agent与传统LLM有着本质区别:

传统LLM:只能基于输入生成文本,无法与外界交互
AI Agent:能够感知环境、制定计划、执行操作、学习改进

简单来说,ChatGPT是"顾问",AI Agent是"助手"——前者只能给建议,后者能帮你把事情做完。
AI Agent的四大核心组件


理解AI Agent的关键是将其视为一个完整系统,而非单一模型:
1. 环境 (Environment)


智能体运行的空间,可以是:
    • 旅行预订系统• 企业内部工具• 社交媒体平台• 物理世界(机器人)
2. 传感器 (Sensors)


收集环境信息的机制:
class TravelAgentSensors:
    def perceive_environment(self, environment):
        return {
            "hotel_availability": environment.get_hotels(),
            "flight_prices": environment.get_flights(),
            "weather_forecast": environment.get_weather(),
            "user_preferences": environment.get_user_data()
        }3. 执行器 (Actuators)


改变环境的操作工具:
class TravelAgentActuators:
    def execute_action(self, action, environment):
        if action.type == "book_hotel":
            return environment.hotel_api.book(action.details)
        elif action.type == "send_notification":
            return environment.notification_service.send(action.message)4. 大语言模型 (LLM)


作为"大脑"进行推理和决策:
class AgentBrain:
    def __init__(self, model):
        self.llm = model
        self.system_prompt = """
        你是专业的旅行助手,能够:
        1. 分析用户需求和环境信息
        2. 制定最优行动方案
        3. 执行具体操作
        4. 处理异常情况
        """
   
    def think_and_act(self, sensor_data, user_request):
        context = f"环境状态: {sensor_data}\n用户需求: {user_request}"
        decision = self.llm.generate(self.system_prompt + context)
        return self.parse_to_actions(decision)七种AI Agent类型详解

1. 简单反射型 (Simple Reflex)


特点:基于规则的即时响应
应用:客服机器人、简单问答
import autogen

# 配置模型(使用免费的GitHub Models)
config_list = [{
    "model": "gpt-4o-mini",
    "api_key": "your_github_token",  # 从GitHub获取免费token
    "base_url": "https://models.inference.ai.azure.com"
}]

# 简单反射型客服智能体
customer_service = autogen.AssistantAgent(
    name="客服小助手",
    system_message="""
    你是智能客服,根据关键词快速响应:
    - 包含"退款":转接财务部门
    - 包含"投诉":转接客服主管
    - 包含"咨询":提供基础信息
    """,
    llm_config={"config_list": config_list}
)

user = autogen.UserProxyAgent(
    name="用户",
    human_input_mode="ALWAYS"
)

# 启动对话
user.initiate_chat(customer_service, message="我要申请退款")2. 基于模型反射型 (Model-Based Reflex)


特点:维护环境模型,基于历史数据决策
应用:股价分析、趋势预测
# 价格监控智能体
price_monitor = autogen.AssistantAgent(
    name="价格分析师",
    system_message="""
    你维护着商品价格的历史模型。你会:
    1. 跟踪价格变化趋势
    2. 识别异常价格波动
    3. 预测最佳购买时机
    4. 在价格优惠时及时提醒
   
    当前监控商品:iPhone 15 Pro
    历史最低价:7999元
    平均价格:8499元
    """,
    llm_config={"config_list": config_list}
)

# 模拟价格查询
user.initiate_chat(
    price_monitor,
    message="当前iPhone 15 Pro价格8200元,请分析是否值得购买"
)3. 目标导向型 (Goal-Based) - AutoGen的强项


特点:制定计划达成特定目标
应用:项目管理、旅行规划、学习计划

这是AutoGen最擅长的类型!以下是一个完整的旅行规划系统:
# 旅行规划多智能体系统
defcreate_travel_planning_system():
    # 主规划师
    travel_planner = autogen.AssistantAgent(
        name="旅行规划师",
        system_message="""
        你是专业旅行规划师,负责:
        1. 理解用户完整需求
        2. 协调各专业团队
        3. 制定综合旅行方案
        4. 确保预算和时间控制
        """,
        llm_config={"config_list": config_list}
    )
   
    # 交通专家
    transport_expert = autogen.AssistantAgent(
        name="交通专家",
        system_message="""
        你是交通规划专家,专注:
        - 航班搜索和价格比较
        - 最优路线规划
        - 当地交通方案
        - 时间衔接优化
        """,
        llm_config={"config_list": config_list}
    )
   
    # 住宿专家
    accommodation_expert = autogen.AssistantAgent(
        name="住宿专家",
        system_message="""
        你是住宿预订专家,负责:
        - 酒店筛选和评价分析
        - 地理位置优化
        - 性价比评估
        - 特殊需求处理
        """,
        llm_config={"config_list": config_list}
    )
   
    # 预算分析师
    budget_analyst = autogen.AssistantAgent(
        name="预算分析师",
        system_message="""
        你是预算控制专家,确保:
        - 费用明细透明
        - 预算合理分配
        - 性价比最大化
        - 应急资金预留
        """,
        llm_config={"config_list": config_list}
    )
   
    # 用户代理
    user_proxy = autogen.UserProxyAgent(
        name="用户",
        human_input_mode="TERMINATE",
        max_consecutive_auto_reply=0,
        is_termination_msg=lambda x: x.get("content", "").find("TERMINATE") >= 0
    )
   
    return [travel_planner, transport_expert, accommodation_expert, budget_analyst, user_proxy]

# 创建群组协作
defstart_travel_planning(user_requirements):
    agents = create_travel_planning_system()
   
    groupchat = autogen.GroupChat(
        agents=agents,
        messages=[],
        max_round=15,
        speaker_selection_method="round_robin"
    )
   
    manager = autogen.GroupChatManager(
        groupchat=groupchat,
        llm_config={"config_list": config_list}
    )
   
    # 启动协作规划
    agents[-1].initiate_chat(
        manager,
        message=f"""
        请帮我制定详细的旅行计划:
        {user_requirements}
      
        要求输出:
        1. 完整行程安排
        2. 交通方案对比
        3. 住宿推荐理由
        4. 详细预算分解
        5. 风险提示和备选方案
        """
    )

# 使用示例
travel_request = """
目的地:日本关西地区(大阪、京都、奈良)
时间:2025年8月1-7日(7天6夜)
预算:15000元人民币/人
人数:2人(夫妻出行)
兴趣:文化体验、美食探索、购物
特殊要求:希望体验温泉,行程不要太赶
"""

start_travel_planning(travel_request)4. 效用型智能体 (Utility-Based)


特点:通过效用函数优化决策
应用:投资组合、资源分配
# 投资顾问智能体
investment_advisor = autogen.AssistantAgent(
    name="投资顾问",
    system_message="""
    你是量化投资顾问,使用效用函数优化投资决策:
   
    效用函数:U = 0.6 * 预期收益 - 0.3 * 风险系数 + 0.1 * 流动性
   
    决策过程:
    1. 评估所有投资选项的效用值
    2. 比较不同组合的总效用
    3. 选择效用最大化的方案
    4. 考虑用户风险偏好调整权重
    """,
    llm_config={"config_list": config_list}
)

# 投资咨询示例
user.initiate_chat(
    investment_advisor,
    message="""
    我有10万元闲置资金,风险承受能力中等,希望年化收益6%以上。
    目前考虑:定期存款(3%)、债券基金(5%)、股票基金(8%但波动大)、混合基金(6.5%)
    请帮我分析最优配置方案。
    """
)5. 学习型智能体 (Learning Agent)


特点:从反馈中持续改进
应用:个性化推荐、自适应系统
# 个性化学习助手
learning_tutor = autogen.AssistantAgent(
    name="学习伙伴",
    system_message="""
    你是能够学习用户偏好的AI导师:
   
    学习机制:
    1. 记录用户的学习反馈
    2. 分析成功和失败的模式
    3. 调整教学策略和内容推荐
    4. 个性化学习路径优化
   
    当前学习档案:
    - 学习风格:视觉型学习者
    - 偏好难度:循序渐进
    - 有效时间:上午注意力最佳
    - 反馈历史:代码实践效果好,纯理论吸收慢
    """,
    llm_config={"config_list": config_list}
)

# 自适应学习对话
user.initiate_chat(
    learning_tutor,
    message="我想学习Python数据分析,但总是觉得很抽象难懂,有什么好方法吗?"
)6. 分层智能体 (Hierarchical Agent)


特点:多层级的任务分解和管理
应用:企业级系统、复杂项目管理
# 分层项目管理系统
classHierarchicalProjectSystem:
    def__init__(self):
        # 高层:项目总监
        self.project_director = autogen.AssistantAgent(
            name="项目总监",
            system_message="""
            你是项目总监,负责:
            1. 理解项目整体目标
            2. 将复杂项目分解为里程碑
            3. 协调各部门经理
            4. 控制进度和质量
            """,
            llm_config={"config_list": config_list}
        )
      
        # 中层:部门经理
        self.dev_manager = autogen.AssistantAgent(
            name="开发经理",
            system_message="管理开发团队,负责技术实现和开发进度",
            llm_config={"config_list": config_list}
        )
      
        self.design_manager = autogen.AssistantAgent(
            name="设计经理",
            system_message="管理设计团队,负责用户体验和界面设计",
            llm_config={"config_list": config_list}
        )
      
        # 基层:专业执行者
        self.frontend_dev = autogen.AssistantAgent(
            name="前端工程师",
            system_message="专注前端开发,实现用户界面功能",
            llm_config={"config_list": config_list}
        )
      
        self.backend_dev = autogen.AssistantAgent(
            name="后端工程师",
            system_message="专注后端开发,处理业务逻辑和数据",
            llm_config={"config_list": config_list}
        )

# 启动分层项目讨论
defhierarchical_project_meeting(project_requirements):
    all_agents = [
        project_director, dev_manager, design_manager,
        frontend_dev, backend_dev, user_proxy
    ]
   
    # 分阶段讨论
    # 第一阶段:高层战略规划
    strategic_chat = autogen.GroupChat(
        agents=[project_director, dev_manager, design_manager, user_proxy],
        messages=[],
        max_round=8
    )
   
    # 第二阶段:技术实现讨论
    technical_chat = autogen.GroupChat(
        agents=[dev_manager, frontend_dev, backend_dev, user_proxy],
        messages=[],
        max_round=10
    )7. 多智能体系统 (Multi-Agent System)


特点:多个智能体协作或竞争
应用:市场模拟、资源竞争、团队协作
# 电商竞价系统(竞争性MAS)
defcreate_bidding_competition():
    bidders = []
   
    for i inrange(3):
        bidder = autogen.AssistantAgent(
            name=f"竞标者_{i+1}",
            system_message=f"""
            你是竞标者{i+1},参与广告位竞价。
            策略:{['保守稳健', '激进高价', '灵活应变']}
            预算:{[1000, 1500, 1200]}元
            目标:在预算内获得最佳广告位
            """,
            llm_config={"config_list": config_list}
        )
        bidders.append(bidder)
   
    # 拍卖师
    auctioneer = autogen.AssistantAgent(
        name="拍卖师",
        system_message="""
        你是拍卖师,负责:
        1. 公布广告位信息
        2. 收集所有竞标者出价
        3. 确定最高出价者
        4. 宣布拍卖结果
        """,
        llm_config={"config_list": config_list}
    )
   
    return bidders + [auctioneer]

# 协作式多智能体:内容创作团队
defcreate_content_team():
    content_team = [
        autogen.AssistantAgent(
            name="选题策划",
            system_message="负责热点选题和内容方向规划",
            llm_config={"config_list": config_list}
        ),
        autogen.AssistantAgent(
            name="文案编辑",
            system_message="负责文章撰写和语言润色",
            llm_config={"config_list": config_list}
        ),
        autogen.AssistantAgent(
            name="视觉设计",
            system_message="负责配图设计和视觉呈现",
            llm_config={"config_list": config_list}
        ),
        autogen.AssistantAgent(
            name="数据分析",
            system_message="负责内容效果分析和优化建议",
            llm_config={"config_list": config_list}
        )
    ]
   
    return content_teamReAct模式:让AI Agent更透明


ReAct (Reasoning and Acting) 是目前最流行的Agent设计模式,让AI的思考过程可见:
# ReAct模式智能体
react_agent = autogen.AssistantAgent(
    name="ReAct分析师",
    system_message="""
    你使用ReAct模式工作,严格按照以下格式:
   
    THOUGHT: [分析当前情况,思考下一步]
    ACTION: [执行具体行动]
    OBSERVATION: [观察行动结果]
   
    重复这个循环直到完成任务。
   
    示例:
    THOUGHT: 用户要查航班信息,我需要了解出发地、目的地和时间
    ACTION: 询问用户具体的出行需求
    OBSERVATION: 用户提供了"北京到上海,明天下午"
    THOUGHT: 信息不够具体,需要确认具体日期和时间偏好
    ...
    """,
    llm_config={"config_list": config_list}
)

# 使用ReAct模式
user.initiate_chat(
    react_agent,
    message="帮我安排一个商务出行,从北京到深圳,需要订机票和酒店"
)快速开始你的第一个AI Agent

环境准备

# 安装依赖
pip install pyautogen

# 获取免费API密钥
# 1. 访问 https://github.com/settings/tokens
# 2. 创建新token,选择模型访问权限
# 3. 复制token用于配置5分钟搭建客服智能体

import autogen

# 配置
config_list = [{
    "model": "gpt-4o-mini",
    "api_key": "your_github_token",
    "base_url": "https://models.inference.ai.azure.com"
}]

# 创建智能客服
customer_service = autogen.AssistantAgent(
    name="智能客服",
    system_message="""
    你是专业的客服代表,能够:
    1. 友好地回答用户问题
    2. 根据问题类型提供专业建议
    3. 必要时转接人工客服
    4. 记录用户反馈和建议
    """,
    llm_config={"config_list": config_list}
)

# 用户代理
user_proxy = autogen.UserProxyAgent(
    name="用户",
    human_input_mode="ALWAYS",
    max_consecutive_auto_reply=10
)

# 开始对话
user_proxy.initiate_chat(
    customer_service,
    message="你好,我想了解你们的产品功能"
)实际应用场景推荐

1. 个人助理系统

    • 日程管理:自动安排会议,避免冲突• 邮件处理:智能分类和回复• 信息整理:从多个来源收集和总结信息
2. 业务自动化

    • 客户服务:24/7智能客服• 销售支持:潜在客户筛选和跟进• 数据分析:自动生成业务报告
3. 创意协作

    • 内容创作:多角色协作写作• 产品设计:需求分析到原型设计• 营销策划:从市场分析到执行方案
4. 学习辅助

    • 个性化辅导:根据学习进度调整内容• 知识问答:专业领域的深度解答• 技能培训:实践项目指导
注意事项与最佳实践

1. 设计原则

    • 明确角色定义:每个智能体都要有清晰的职责• 合理任务分解:复杂任务拆分为可管理的子任务• 有效沟通机制:建立智能体间的信息传递协议
2. 性能优化

    • 控制对话轮次:避免无限循环• 设置终止条件:明确任务完成标准• 监控成本:合理使用API调用
3. 安全考虑

    • 权限控制:限制智能体的操作范围• 内容过滤:防止生成不当内容• 数据保护:敏感信息的处理机制

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-8-3 19:05 , Processed in 0.085808 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表