Agent 专题:从第一次调用到可恢复的智能工作流
围绕 gpt88.cc API 和常用开发工具,建立 Agent 的完整学习路径:先跑通一次请求,再理解工具调用、上下文、循环、权限、可观察性和生产化。
这个专题解决什么问题
如果你只看单个模型或单个客户端,很容易遇到三个断点:API 能调用,但不知道如何让模型使用工具;工具能调用,但没有状态、步数和权限边界;任务能完成,但无法解释过程、恢复失败或复用成功配置。
这个专题把 GPT88 现有的 API、模型、开发工具和工程实践文档组织成一条 Agent 学习路线。你可以把它当作 Cocode 式的总入口:先快速开始,再进入核心概念、开发者 API、工具接入、可观察性和排错。
快速开始
先用一条最小请求验证 API Key、模型、Base URL 和返回结构。
查看专题内容核心概念
理解 Agent、上下文、工具、循环、状态和权限边界之间的关系。
查看本页开发者 API
使用 tools / function calling、流式响应和多轮消息构建 Agent 回路。
查看专题内容开发工具接入
按 Claude Code、Codex CLI、Cursor、Cline、Dify 等工具选择接入路径。
查看专题内容可观察性与恢复
把意图、Session、文件活动、工具调用和交付结果连接成可检查证据。
查看专题内容生产化指南
补齐密钥管理、模型选择、用量核对、失败重试和发布前验收。
查看专题内容看完后的完成标准
完成本专题的最小标准不是“读完所有页面”,而是你能够独立完成下面这些动作:
- 使用 API Key + Base URL + 模型 ID 跑通一次最小请求;
- 给模型声明一个工具,并识别返回中的 tool_calls;
- 在本地执行允许的工具,把结果以 role: tool 消息回传;
- 给 Agent 设置最大步数、超时、允许动作和人工确认边界;
- 记录请求 ID、工具输入、工具输出、失败原因和最终交付物;
- 能在 401、404、429、超时或工具失败时,从最小故障点恢复。
推荐学习路径
| 阶段 | 你要获得的能力 | 推荐入口 |
|---|---|---|
| 1. 快速开始 | 创建 Key、获取模型、完成第一条请求 | Quick start |
| 2. 核心概念 | 理解上下文、工具、循环、状态和权限 | Core concepts |
| 3. API 构建 | 使用 tools、流式响应和多轮消息构建 Agent 回路 | Chat Completions API |
| 4. 工具接入 | 把同一套模型能力接到 CLI、IDE 或应用平台 | Integration guide |
| 5. 可观察性 | 检查意图、Session、文件活动、工具结果和提交证据 | Harness Inspector |
| 6. 生产化 | 管理密钥、用量、失败恢复、发布和团队复用 | Complete integration guide |
Agent 的六个核心概念
| 概念 | 它回答的问题 | 最低实践 |
|---|---|---|
| 目标 Goal | 这次任务最终要交付什么? | 把自然语言目标写成可验收的结果和边界。 |
| 上下文 Context | 模型可以依据哪些事实工作? | 只提供任务需要的文件、消息、规则和历史结果。 |
| 模型 Model | 谁负责规划、判断和生成下一步? | 确认当前 Key 可用的模型。 Model list |
| 工具 Tools | 模型可以请求哪些外部动作? | 写清描述、参数 Schema、权限和失败返回。 |
| 循环 Loop | 工具结果返回后是否继续下一步? | 设置最大步数、超时和停止条件。 |
| 验证 Verify | 如何知道任务真的完成了? | 用测试、差异、结构检查或交付清单验收。 |
用户目标
↓
读取上下文 → 规划下一步 → 调用模型
↓
需要工具?──否──→ 返回结果
│是
↓
执行工具并记录结果
↓
继续循环
↓
验证产出并交付一个重要边界是:模型只能提出工具调用,真正执行工具的是你的应用或客户端。应用必须校验工具名和参数,决定是否允许执行,再把结构化结果回传给模型。不要把“模型说要执行”直接等同于“动作已经执行”。
最短成功路径:跑通一个工具调用
- 准备输入。创建 API Key,并通过 GET /v1/models 选择当前账号可见的模型。验证:你能拿到一个真实可用的模型 ID。
- 先跑普通请求。用 快速开始 的最小示例确认认证、网络和响应结构没有问题。验证:返回
choices[0].message。 - 声明一个只读工具。从“读取项目状态”或“查询任务状态”开始,不要一上来就开放删除、发布或支付动作。验证:请求体包含
tools和清晰的 JSON Schema。 - 识别工具调用。检查
choices[0].message.tool_calls,读取工具名、调用 ID 和 JSON 参数。验证:参数能被 JSON 解析并通过本地 Schema 校验。 - 执行并回传。由应用执行允许的只读函数,并把结果作为
role: tool消息放回同一轮消息历史。验证:下一次模型响应能够引用工具结果。 - 检查最终结果。不要只检查模型有没有返回文字,还要验证工具结果、最终结论和交付格式。验证:结果能被人或程序复核。
工具调用之后,应用要做什么
curl https://api.gpt88.cc/v1/chat/completions \
-H "Authorization: Bearer $GPT88_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL_ID",
"messages": [
{"role": "user", "content": "检查项目当前发布状态"}
],
"tools": [{
"type": "function",
"function": {
"name": "get_project_status",
"description": "读取项目当前环境、版本和发布状态",
"parameters": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}
}],
"tool_choice": "auto"
}'把调用封装成可恢复循环
原型阶段可以手动处理一次工具调用;进入真实项目后,需要把循环封装成有状态的执行器。至少保存目标、消息历史、每一步工具调用、工具结果、错误、耗时和最终交付物。
const state = {
goal,
messages: [{ role: "user", content: goal }],
steps: [],
maxSteps: 8,
}
while (state.steps.length < state.maxSteps) {
const response = await callModel(state.messages, tools)
const toolCalls = response.choices?.[0]?.message?.tool_calls ?? []
if (toolCalls.length === 0) {
return verifyAndDeliver(response.choices[0].message.content)
}
state.messages.push(response.choices[0].message)
for (const call of toolCalls) {
const args = JSON.parse(call.function.arguments || "{}")
const result = await executeAllowedTool(call.function.name, args)
state.steps.push({ call, result })
state.messages.push({
role: "tool",
tool_call_id: call.id,
content: JSON.stringify(result),
})
}
}
throw new Error("agent step limit reached")这个示例是工作流骨架,不是可以直接复制到生产环境的完整 SDK。生产实现还需要加入:
- 参数 Schema 校验和工具白名单;
- 超时、重试、指数退避和幂等键;
- 敏感数据脱敏、日志保留和终端用户标识;
- 最大步骤数、最大成本或资源预算;
- 失败后继续、暂停等待人工确认或安全回滚的策略。
什么时候用哪种接入方式
| 你的目标 | 优先选择 | 原因与取舍 |
|---|---|---|
| 验证 API 是否可用 | cURL | 依赖最少、问题边界清晰,适合第一条请求和健康检查。 |
| 构建自己的 Agent 服务 | Python SDK | 适合封装状态、工具循环、重试和测试;需要自行设计执行器。 |
| 在 JavaScript 应用中接入 | Node.js SDK | 适合服务端、队列和 Web 应用;注意不要把 API Key 暴露到浏览器。 |
| 直接使用成熟代码 Agent | Codex CLI | 最快获得文件、命令和验证工作流;可控性取决于工具权限和配置。 |
| 在 IDE 内协作开发 | Cursor | 适合边看代码边修改;需要保留 diff、测试和人工审阅。 |
| 接入知识库或业务应用 | Dify | 适合编排工作流和应用;复杂工具权限仍需在业务层控制。 |
按工具选择接入教程
Claude Code
适合终端里的代码 Agent、项目级上下文和 Claude 风格协议接入。
查看专题内容Codex CLI
适合以命令行推进代码修改、工具调用、验证和交付。
查看专题内容Cursor / Cline
适合在编辑器内边读代码边规划、修改、运行和复核。
查看专题内容Dify / AnythingLLM
适合把模型接入应用、工作流、知识库和团队服务。
查看专题内容如果你还没有决定使用哪个工具,先选择能最快完成一次可验证任务的入口:终端优先 Codex CLI 或 Claude Code,编辑器优先 Cursor 或 Cline,应用编排优先 Dify,纯 API 开发优先 Python 或 Node.js SDK。
可观察性、权限与恢复
Agent 的质量不只看最终回答,还要看它是否走了正确的路径。建议为每次任务建立一个可追踪记录,至少包含:任务目标、使用模型、请求 ID、消息摘要、工具名、参数摘要、执行结果、失败原因、人工确认点和最终交付物位置。
- Harness Inspector:把 Agent 意图、Session、文件活动和 Commit 连接成交付证据链。
- Codex 工具恢复:工具不可用时,从文件工具、执行环境和恢复顺序开始排查。
- Loop Engineering 与 Harness:把一次任务的成功路径沉淀为可复用循环。
- Skills 与上下文工程:将规则、上下文、权限和工作记录组合成稳定工作方式。
生产化验收清单
身份与配置
- API Key 放在服务端环境变量或密钥管理器中
- 不在日志、截图、Prompt 或前端代码中输出完整 Key
- 模型 ID、Base URL 和当前账号权限已验证
执行与可靠性
- 工具名和参数经过白名单 / Schema 校验
- 设置最大步骤数、超时、重试和停止条件
- 对写入、发布、发送和删除动作保留人工确认
- 工具执行具备幂等或可安全重试能力
观测与验收
- 记录 request_id、模型、耗时、工具调用和错误摘要
- 最终结果有结构化验收标准,而不是只看自然语言
- 失败任务可以从最近一个安全状态恢复
- 成功的配置、Prompt、工具 Schema 和验收清单已保存
扩展前检查
- 先用少量任务验证质量、耗时、成本和失败率
- 再组合多个工具或执行批量任务
- 模型、价格、限速和响应差异以控制台与实时 API 为准常见问题与排错顺序
| 现象 | 先检查什么 | 下一步 |
|---|---|---|
| 401 / 认证失败 | Authorization 头、Key 是否过期、环境变量是否生效 | 查看认证与计费 |
| 404 / 模型或路径不存在 | Base URL、endpoint 路径、模型 ID 和账号可见性 | 列出模型,再看 错误码 |
| 429 / 请求过多 | 并发、重试是否叠加、是否缺少退避 | 降低并发,使用指数退避,并记录每次重试原因。 |
| 模型不调用工具 | tools 描述、参数 Schema、tool_choice 和模型能力 | 先用一个只读工具和最短 Prompt 验证,再逐步增加工具。 |
| 工具调用后循环不继续 | 是否回传 assistant tool_calls、tool_call_id 和 role=tool | 对照 Chat Completions API 的 function calling 示例检查消息顺序。 |
| 任务中途失败或卡住 | 最后一个成功步骤、工具超时、上下文长度和资源预算 | 按恢复指南从最小故障点继续 |
练习任务
用一个只读的“项目状态检查 Agent”完成下面的练习:
- 声明 get_project_status 工具,只返回环境、版本、测试状态和最近一次发布结果。
- 让模型根据用户问题决定是否调用工具,不允许直接猜测项目状态。
- 模拟一次工具成功返回和一次工具超时,分别验证 Agent 的回答。
- 把每一步写入 JSONL 或数据库,包含调用 ID、参数、结果和耗时。
- 给任务加上最大 4 步限制,并写出“超过限制后如何暂停和人工接管”。
验收标准:
- 没有工具结果时,Agent 明确说明无法确认,而不是编造状态;
- 工具失败时,用户能看到可执行的下一步,而不是无上下文的“请求失败”;
- 同一请求可以通过 request ID 和 tool call ID 还原执行过程;
- 修改工具描述或模型后,仍能通过同一套验收清单回归。
下一步阅读
- 第一次接入:Quick start → Model list API → Chat Completions API.
- 使用成熟工具:Integration guide,then open the relevant Claude Code, Codex CLI, Cursor, Cline or Dify page.
- 构建生产服务:Complete integration guide → Config export → Harness Inspector.
- 处理异步媒体任务:Async image generation API guide,bring task submission, polling, recovery and result downloads into the Agent workflow.