#今天分享一个完整的、生产级的多智能体旅游助手系统,从架构,流程及特点进行简要的介绍:
请添加图片描述

核心架构

1. Main Agent 作为协调中枢

main_agent = Agent(
    role="旅游助手接待员",
    allow_delegation=True,  # ← 这是关键!
    # ...
)
  • allow_delegation=True 使 Main Agent 能够将任务委托给专家
  • 类似"项目经理"角色:不直接执行,而是分配任务

2. 专家 Subagents (领域隔离)

# 每个专家只关注自己的领域
flight_expert.tools = [search_flights, book_flight]  # 只能操作航班
hotel_expert.tools = [compare_hotels, show_map]      # 只能操作酒店

关键特性:

  • allow_delegation=False - 专家不能再委托(防止无限递归)
  • 工具隔离 - 每个 Subagent 只能访问特定工具
  • 限流独立 - max_rpm 分别控制,避免单点过载

3. 上下文传递链 (Context Chain)

hotel_search_task.context = [flight_search_task]  # 酒店任务依赖航班结果

这实现了 “信息胶囊化”:

  • Hotel Expert 只看到 Flight Expert 的输出
  • 不会看到原始用户输入或其他 Agent 的内部思考
  • 减少 token 消耗,提高推理准确性

系统中的 Subagent 设计

1. 安全 Subagent 前置

# 所有任务必须先经过安全检查
flight_search_task.context = [security_task]
hotel_search_task.context = [security_task]
  • Security_Agent 作为"防火墙"
  • 保证下游 Subagent 永远看不到敏感原文

2. 人工干预点 (HITL)

flight_booking_task = Task(
    human_input=True,  # 在此 Subagent 执行完暂停
    # ...
)
  • 实现 “Human-in-the-Loop”
  • Subagent 执行到关键节点时请求人工确认

3. 条件触发 Subagent

# Translation_Expert 只在需要时才参与
if "translate" in user_input.lower():
    tasks.append(translation_task)
  • 动态 Subagent 激活
  • 节省不必要的计算资源

系统使用 Subagent 架构实现了 “分而治之” 的设计哲学,这是构建复杂 AI 系统的最佳实践。通过角色分离、工具隔离、上下文控制,系统既提高了效率,又增强了安全性和可维护性! 🎉

🎯 核心功能亮点

1. 安全隔离机制

  • SensitiveDataBuffer 类实现了敏感数据的完整生命周期管理
  • 自动识别护照号、信用卡号等敏感信息
  • 生成不可逆的安全令牌,确保下游 Agent 无法接触明文数据

2. 智能 Agent 架构

  • 安全官: 最高优先级(max_rpm=15),负责入口把关
  • 接待员: 唯一的用户接口,allow_delegation=True 支持任务委托
  • 机票专家: 配备限流(max_rpm=10),专注航班业务
  • 酒店专家: 独立工具集,处理住宿相关逻辑
  • 翻译专家: 按需触发,支持跨语言场景

3. 任务协作流程

安全检查 → 航班搜索 → 航班预订(HITL) → 酒店搜索 → 最终整合
              ↓                              ↑
              └──────(抵达时间)──────────────┘
  • 使用 context 参数建立任务依赖
  • 酒店任务自动获取航班抵达时间作为上下文

4. 人工干预(HITL)

  • flight_booking_task 设置了 human_input=True
  • 在支付前强制暂停,等待用户确认
  • 确保关键决策的人工审核

5. 思考过程透明化

  • 所有 Agent 启用 verbose=True
  • 完整展示 Thought → Action → Observation 循环
  • 便于调试和理解决策逻辑

📦 使用方法

安装依赖

pip install crewai crewai-tools langchain langchain-openai

运行系统

python travel_assistant.py

配置 API Key

# 在代码开头添加
import os
os.environ["OPENAI_API_KEY"] = "your-api-key-here"

🔧 扩展建议

  1. 真实工具集成: 将 Mock 工具替换为真实 API
  2. 数据库持久化: 将 SensitiveDataBuffer 连接到加密数据库
  3. 多轮对话: 添加对话历史管理
  4. 错误重试: 实现任务失败自动重试机制
  5. 监控告警: 集成日志和性能监控

这个系统提供了完整的架构模板,您可以根据实际需求进行定制化开发!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐