内容
# AI 代理快速入门课程
一个用于实验 OpenAI 模型调用和基于 AgentSpan 的 AI 代理的小型 Python 快速入门课程存储库。示例程序从直接的 OpenAI 聊天循环逐步发展到具有记忆、互联网搜索、防护栏、结构化输出和人工审批的工具使用代理。
## 内容包含
| 文件 | 目的 |
| --- | --- |
| `main.py` | 直接使用 OpenAI Responses API 的最小终端聊天机器人。 |
| `chatbot_agent.py` | 名为 `Alex` 的 AgentSpan 聊天机器人,具有对话记忆、所需的问候工具和 Tavily 驱动的互联网搜索。 |
| `customer_support.py` | 具有模拟订单查找、退款审批、输入防护栏和结构化 Pydantic 输出的客户支持代理。 |
| `pyproject.toml` | 项目元数据和 Python 依赖项。 |
| `uv.lock` | 使用 `uv` 进行可复制安装的锁定依赖项版本。 |
## 要求
- Python 3.11 或更新版本
- `uv` 用于依赖项管理
- OpenAI API 密钥
- `chatbot_agent.py` 互联网搜索的 Tavily API 密钥
## 设置
1. 安装依赖项:
```bash
uv sync
```
2. 在项目根目录中创建 `.env` 文件:
```env
OPENAI_API_KEY=您的_openai_api密钥
TAVILY_API_KEY=您的_tavily_api密钥
```
3. 使用 `uv run` 运行任何示例。
## 用法
### 基本 OpenAI 聊天
```bash
uv run python main.py
```
在 `Ask Query:` 处输入提示。输入 `q` 退出。
### 带有网络搜索的代理聊天机器人
```bash
uv run python chatbot_agent.py
```
此示例使用 AgentSpan 具有:
- 对话记忆
- 自定义 `say_hello` 工具
- Tavily 互联网搜索工具
- `openai/gpt-5.4` 模型设置
输入 `q` 退出。
### 客户支持代理
```bash
uv run python customer_support.py
```
此示例演示:
- 阻止常见提示注入短语的输入防护栏
- 模拟订单数据库查找工具
- 需要人工审批的退款工具
- 使用 `SupportResponse` Pydantic 模型的 структурированный输出
尝试以下提示:
```text
订单 1 的状态是什么?
请退款订单 2。
```
输入 `q` 退出。
## 依赖项
主要依赖项是:
- `openai` 用于直接模型访问
- `agentspan` 用于代理、工具、记忆、防护栏、运行时和审批
- `tavily-agent-toolkit` 用于互联网搜索
- `python-dotenv` 用于加载本地环境变量
## 注意事项
- 将 `.env` 移出版本控制,因为它包含 API 密钥。
- 客户支持数据库在代码中模拟,仅用于学习目的。
- 脚本是交互式示例,而不是生产服务。