旅行智能体(手工实现版本)

旅行智能体(Agent)(手工实现版本)

这是一个不依赖 LangChain 框架的手工实现版本,展示了智能体的核心原理。

特点

  • ✅ 完全手工实现,不依赖 LangChain
  • ✅ 支持函数调用(Function Calling)
  • ✅ 模块化设计,易于理解和扩展
  • ✅ 使用 DeepSeek API

项目结构

manual_agent/
├── data/                      # 数据文件
│   ├── weather.json
│   ├── flights.json
│   └── attractions.json
├── tools/                     # 工具函数
│   ├── weather_tools.py
│   ├── flight_tools.py
│   ├── attraction_tools.py
│   └── budget_tools.py
├── base.py                    # 基础类(Tool、装饰器)
├── llm.py                     # LLM 接口类
├── agent.py                   # 智能体核心类
├── main.py                    # 主程序
└── requirements.txt           # 依赖

核心组件说明

1. base.py - 基础设施

  • Tool 类:封装工具函数
  • @tool 装饰器:将函数转换为工具
  • ToolRegistry 类:工具注册表

2. llm.py - LLM 接口

  • LLM 类:封装 OpenAI 兼容的 API
  • 支持函数调用(Function Calling)
  • 自动处理工具调用和结果返回

3. agent.py - 智能体核心

  • Agent 类:智能体实现
  • 自动构建工具定义
  • 迭代式执行:LLM 决策 → 工具调用 → 结果反馈 → 最终回复

4. tools/ - 工具集合

  • query_weather:查询天气
  • query_flights:查询航班
  • recommend_attractions:推荐景点
  • calculate_total_budget:计算预算

安装依赖

pip install -r requirements.txt --index-url https://pypi.org/simple/

配置

设置 DeepSeek API Key:

# Windows (PowerShell)
$env:OPENAI_API_KEY='your_deepseek_api_key'

# Windows (CMD)
set OPENAI_API_KEY=your_deepseek_api_key

# Linux/Mac
export OPENAI_API_KEY='your_deepseek_api_key'

使用方法

cd manual_agent
python main.py

工作原理

用户输入
    ↓
LLM 分析 + 选择工具
    ↓
调用工具函数
    ↓
获取工具结果
    ↓
将结果反馈给 LLM
    ↓
LLM 生成最终回复
    ↓
返回给用户

与 LangChain 版本对比

特性LangChain 版本手工实现版本
依赖LangChain 框架仅 OpenAI SDK
代码量较少较多
可控性中等
学习价值学习如何使用框架理解核心原理
扩展性受限于框架完全自定义

示例对话

您:我想从北京去上海,帮我查一下航班
助手:[调用 query_flights 工具]
     [显示北京到上海的航班信息]

您:推荐一下上海的景点
助手:[调用 recommend_attractions 工具]
     [显示上海热门景点推荐]

您:我和女朋友想去上海玩3天,预算5000元
助手:[调用 calculate_total_budget 工具]
     [根据预算给出建议和规划]

扩展建议

  1. 添加更多工具:在 tools/ 目录下创建新的工具文件
  2. 优化提示词:修改 agent.py 中的系统提示词
  3. 支持记忆:添加对话历史存储
  4. 多轮对话:实现上下文管理
  5. 流式输出:添加打字机效果

注意事项

  1. 需要有效的 DeepSeek API Key
  2. 当前仅支持北京和上海两个城市
  3. 工具参数需要严格按照 JSON 格式传递

源码

参见 https://github.com/chendanyu/travel_agent/tree/main/manual_agent

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值