这页解决什么问题
实践篇的目标是帮助你把 AI Agent 的核心模式真正跑通,但在开始之前有一件事必须先说清楚:
- 当前仓库首先是一个 VitePress 文档站点
- 实践篇页面中的
bun run pxx-*.ts更接近推荐的示例入口命名 - 当前仓库已经提供
P1-P23的根目录示例文件;实践篇当前章节都可以直接按推荐命令运行
如果你只是阅读原理,这一页可以快速浏览。
如果你打算边读边敲代码,这一页建议完整看完。
你会用到什么
开始实践篇之前,建议至少准备好下面这些基础条件:
| 项 | 建议值 | 用途 |
|---|---|---|
| Node.js | 20+ | 兼容现代 ESM、VitePress、常见 Agent SDK |
| Bun | 1.1+ | 文中运行命令默认使用 bun run / bun add |
| 包管理器 | bun | 安装文档站点依赖,后续也可用于示例工程 |
| OpenAI API Key | 必需 | 涉及 openai 的章节都要用到 |
| API Base URL | 可选 | 当你使用代理、兼容网关或本地模型时需要配置 |
| 模型名 | 建议预先确认 | 避免在线运行或本地运行时直接填错 |
| 一个终端 | 必需 | 绝大多数示例都以命令行方式运行 |
| 一个浏览器 | 在线运行时需要 | 适合先验证核心链路是否能跑通 |
两种使用方式
方式一:在线运行模式
如果你还不想先折腾本地环境,只想先感受“这个示例到底会不会跑”,那在线运行模式更适合你。
它的核心思路很简单:在在线 Playground 或浏览器侧运行面板里,手动填写 3 个参数,再执行当前章节的示例代码。
| 配置项 | 是否必填 | 说明 |
|---|---|---|
API Key | 必填 | 你的真实密钥,运行时用于鉴权 |
baseURL | 按需 | 默认可指向官方 OpenAI,也可以替换成代理或兼容服务 |
model | 建议必填 | 例如 gpt-4o、gpt-4o-mini、兼容服务自己的模型名 |
在线运行模式更适合这些场景:
- 你想先快速体验
P1-P4这种单文件、轻依赖的示例 - 你还没决定要不要完整搭本地开发环境
- 你想先验证自己的
baseURL / model / key组合是否可用
在线运行模式也有明确边界:
- 更适合
P1-P4、P10、P18这类主链路清晰的轻量章节 - 不适合
P14这类需要双进程配合或额外服务的章节 - 如果章节依赖文件输入、样本目录或多脚本联动,通常还是本地运行更稳
安全提醒:
- 不要把真实
API Key写进仓库、截图或公开分享 - 如果在线运行平台会保存表单内容,优先确认它的存储策略
- 演示结束后,建议清空页面中的敏感配置
方式二:本地运行模式
如果你想跟着每一章把代码真正敲出来、修改、调试和扩展,本地运行仍然是实践篇的标准路径。
建议先准备示例运行环境,再进入各章节的 bun run pxx-*.ts 主线。
最小依赖通常包括:
bun add openai部分章节还会额外需要其他依赖。例如:
P14:MCP 协议接入需要@modelcontextprotocol/sdk- 涉及 HTTP 服务、Schema 校验、向量检索或文件处理的章节,可能还需要额外包
建议做法是:先读每章“前置准备”或“依赖安装”部分,再安装该章特有依赖,不要一开始把所有可能用到的库一次性全装上。
按当前仓库内已提供的 P1-P23 示例脚本,第三方依赖可以先这样分组:
| 分组 | 覆盖章节 | 说明 |
|---|---|---|
| 基础组 | P1-P23 | 全部章节默认都要 openai |
| MCP 扩展组 | P14 | 额外需要 @modelcontextprotocol/sdk |
也就是说,如果你不打算先做 P14,当前只装 openai 就足够开始大部分实践章节。
如果你当前只是想本地阅读文档站点,不急着跑示例代码:
bun install
bun dev然后访问本地 VitePress 页面即可。
这个模式下,你不需要立刻安装 openai,也不需要配置 OPENAI_API_KEY。
运行参数配置
只要代码里出现下面这种写法:
import OpenAI from 'openai'
const client = new OpenAI()就意味着运行时至少要拿到 API Key,而多数实践示例还支持额外传入 baseURL 与 model。
推荐你先统一理解这 3 个参数:
| 参数 | 作用 | 常见示例 |
|---|---|---|
OPENAI_API_KEY | 鉴权 | sk-...、代理平台密钥、本地模型占位值 |
OPENAI_BASE_URL | API 入口地址 | https://api.openai.com/v1、代理网关、http://localhost:11434/v1 |
OPENAI_MODEL | 当前运行模型 | gpt-4o、gpt-4o-mini、llama3 |
本地运行时的推荐配置
推荐在本地 shell 中先配置最小必需项:
export OPENAI_API_KEY="你的真实 Key"如果你不是直接使用官方 OpenAI,再补充:
export OPENAI_BASE_URL="你的接口地址"
export OPENAI_MODEL="你的模型名"如果你使用 zsh,可以把这行写入 ~/.zshrc 后重新加载:
source ~/.zshrc建议你先验证环境变量是否生效:
echo $OPENAI_API_KEY如果你还配置了其他参数,也建议一起确认:
echo $OPENAI_BASE_URL
echo $OPENAI_MODEL你应该能看到非空输出。不要把真实 Key 提交到仓库,也不要直接硬编码进示例源码。
在线运行时的推荐填写方式
如果你使用浏览器中的在线 Playground,通常不需要写环境变量,而是直接把这 3 个值填进表单:
API Key对应OPENAI_API_KEYbaseURL对应OPENAI_BASE_URLmodel对应OPENAI_MODEL
推荐顺序是:
- 先填
API Key - 如果你用的是代理或兼容服务,再填
baseURL - 最后填准确的
model名称,避免把“平台名”误填成“模型名”
如果你第一次尝试在线运行,优先选 P1、P2、P3 这种输入输出简单、排查成本低的章节。
当前仓库状态说明
为了避免预期错位,这里明确说明当前实践篇的运行边界:
- 实践文章里的代码片段已经覆盖主要实现逻辑,且当前
P1-P23都已经落成仓库内可运行示例文件。 - 当前仓库已经提供
P1-P23对应的根目录示例文件,其中P14包含p14-mcp.ts和p14-mcp-server.ts两个脚本。 - 如果你本地执行
bun run pxx-*.ts时提示找不到文件,通常意味着分支版本较旧或当前工作区没有同步到最新内容,而不是文档仍要求你手动创建。 RunCommand组件会显示“是否已在仓库提供”的提示,但不会主动校验你的本地环境和 API Key 是否已经满足运行条件。
换句话说:当前实践篇已经覆盖 P1-P23 的现成可执行 demo。
推荐目录组织
当前仓库为了让文档中的 bun run pxx-*.ts 命令可直接对齐,示例文件统一放在 practice/ 目录。
如果你准备在自己的项目里持续扩展这些示例,建议统一放在一个明确的目录里,不要和 VitePress 主题文件混在一起。
例如:
.
├── docs/
├── .vitepress/
├── examples/
│ ├── p01-minimal-agent.ts
│ ├── p02-multi-turn.ts
│ ├── p03-streaming.ts
│ └── ...
└── package.json这样做有三个好处:
- 文档代码和可执行示例分层清晰
- 后续补测试、补 README、补样例输入更容易
- 不会误把站点构建依赖和示例运行依赖混在一起
推荐运行流程
建议你按下面顺序开始,而不是直接跳进后面的高级章节:
- 先决定你是走“在线运行模式”还是“本地运行模式”。
- 先读
P1,跑通最小示例,确认API Key / baseURL / model组合可用。 - 再进入
P2到P4,确认多轮、流式和错误处理都正常。 - 等
P1-P4都稳定后,再进入 RAG、多 Agent、生产化章节。
这条路线的目的不是“保守”,而是避免你在 P14、P22 这类高复杂度章节里同时排查协议、环境、依赖和业务逻辑四类问题。
每章开始前的检查清单
建议在每一章动手前,先过一遍下面这份清单:
| 检查项 | 为什么要查 |
|---|---|
| 这章对应的示例文件是否已经在当前分支存在 | 防止命令名与本地文件状态不一致 |
| 这章是否新增依赖 | 防止 Cannot find package |
| 这章是否需要额外资源 | 例如图片、文档样本、diff 样本、测试输入 |
| 这章是否依赖前一章产物 | 防止跳章导致上下文断裂 |
| 这章的预期输出是什么 | 便于判断“没报错”是否真的等于“成功” |
常见报错与排查
1. Cannot find package 'openai'
说明依赖还没安装。
bun add openai2. OPENAI_API_KEY 未配置
说明环境变量没有生效。先重新执行:
export OPENAI_API_KEY="你的真实 Key"然后用 echo $OPENAI_API_KEY 检查是否为空。
如果你走的是在线运行模式,则检查页面中的 API Key 输入框是否为空,或是否误填成了别的平台令牌。
3. baseURL 或 model 配错了
常见现象包括:
- 可以连上接口,但提示模型不存在
- Key 看起来有效,但始终返回 404 / 400
- 同一份代码在别的平台能跑,在当前平台跑不通
优先检查:
baseURL是否已经带上正确的/v1model填的是模型名,而不是平台名或部署名别称- 代理平台是否要求使用它自己的模型标识
4. bun run pxx-*.ts 找不到文件
说明当前工作区缺少对应示例文件,优先检查当前分支是否同步到最新版本,或确认命令中的文件名是否与章节一致。
5. 章节代码能读懂,但拼起来跑不起来
这通常不是模型问题,而是你遗漏了某一步:
- 少了 import
- 漏了类型定义
- 漏了某一段辅助函数
- 漏了环境变量或样本输入
建议做法:不要一次性复制整篇,按文章里的步骤一段一段组装,并在每一步完成后先跑通再继续。
推荐下一步
准备完成后,建议按这个顺序进入实践篇:
如果你只是想快速复制某一章的运行命令,也可以直接查看 实践篇首页的运行索引。
如果你已经具备 Agent 开发经验,也可以直接从你关心的主题切入,但仍然建议先确认这页里的环境准备项已经满足。