Agent 实现方法论
From Scratch
学习地图
练习
术语表
← 返回首页
本章教程
本章练习
第 04 章测验
第 04 章测验
对应章节:厂商差异与 Provider 抽象
共 8 题,答对率 ≥ 80% 即通过。请完成全部题目后点击「提交」。
Q1
在 OpenAI 的 chat/completions 请求体中,system 消息放在哪里?
顶层独立的 system 字段
messages 数组里的一条 role 为 system 的消息
请求头 Authorization 里
请求 URL 的 query 参数里
Q2
在 Anthropic 的 Messages API 请求体中,system 消息放在哪里?
messages 数组里的一条 role 为 system 的消息
顶层独立的 system 字符串字段
与普通消息一样放 content block 里
顶层 system 数组,元素与 messages 一一对应
Q3
Anthropic 的 messages 里,每条消息的 content 是什么结构?
一个字符串
一个 block 数组,如 [{ type: 'text', text: '...' }]
一个 JSON 对象,含 role 和 content 两个键
一个 base64 编码的字符串
Q4
调用 Anthropic Messages API 时,下面哪个字段是必填的?
temperature
max_tokens
seed
top_p
Q5
Anthropic 的响应中,模型回答文本从哪个路径取?
choices[0].message.content
content[0].text
message.content
data.text
Q6
关于两家用量字段,正确的映射是?
OpenAI 的 prompt_tokens 对应 Anthropic 的 output_tokens
OpenAI 的 prompt_tokens / completion_tokens 对应 Anthropic 的 input_tokens / output_tokens
两家字段名完全一致,不需要映射
Anthropic 不返回用量
Q7
没有 Provider 抽象时,「换厂商」最痛的地方是?
需要重新申请 API key
要找出所有调用点,逐个改 URL/鉴权/body/取结果路径/字段名
模型能力突然变差
需要重新安装 Node
Q8
关于官方 SDK(如 openai、@anthropic-ai/sdk)与手写 Provider 的关系,说法正确的是?
引入官方 SDK 后业务代码就不需要任何 Provider 抽象
官方 SDK 之间接口统一,换厂商不用改代码
先手写把协议吃透,SDK 只是把同一套 wire protocol 包层糖;接 SDK 后自己的抽象层仍需保留
手写 Provider 毫无意义,应该直接装最重的框架
提交