
这次我们来看的是Claude Certified Architect前置准备系列的 Part 8。这一部分的核心不是背概念而是把提示词工程Prompt Engineering放到 Claude API 上实际跑一遍。你如果正在准备 Anthropic 的架构师认证或者正在做 Claude API 集成、想要搞清楚结构化输出、1M 长上下文、工具调用这些能力到底怎么用这篇文章可以直接收藏。先说结论Claude Certified Architect 考察的是“用 Claude API 构建真实应用”的能力而 Part 8 对应的正是提示词工程模块。整篇文章不会涉及本地显卡、显存占用这些概念因为 Claude API 是纯云端调用不依赖本地 GPU门槛主要在 API Key、请求格式和对提示词的理解。下面我会从环境准备开始逐步完成 curl 调用、Python SDK 接入、提示词测试用例、批量脚本以及常见报错排查整个过程可以照着复制运行。1. 核心能力速览与 Part 8 定位能力项说明认证方向Anthropic Claude Certified ArchitectPart 8 主题提示词工程Prompt Engineering前置能力是否需要本地 GPU不需要API 云端调用最低环境要求能发起 HTTPS 请求即可推荐 Python 3.9核心 APIMessages API/v1/messages上下文窗口部分 Claude 模型支持最高 1048576 tokens1M token 级别具体以官方模型列表为准开发语言示例curl / Pythonanthropic SDK批量任务可脚本化需注意速率限制适用范围认证准备、Prompt 调优、API 应用开发从这张表可以看到学习 Claude API 提示词工程几乎没有硬件门槛。你真正需要准备的是一个可用的 Anthropic API Key、一个能运行 Python 的环境以及一份对请求结构的基本理解。Part 8 的学习路径很明确先理解 Claude Messages API 的请求格式再掌握 system prompt、用户消息、示例few-shot、结构化输出、长上下文和工具调用这些提示词手段最后把它们组合成可复用的测试脚本。这也是认证考试中偏应用的部分。2. Part 8 到底在学什么提示词工程的关键能力Claude 的提示词工程和常规 ChatGPT 式调参有一个显著区别Claude 的官方建议更强调“清晰结构”“示例驱动”和“长上下文利用”。按官方提示词工程文档的习惯可以把提示词工程拆成几个方向这些方向正好对应 Part 8 的考查点。第一个是指令清晰度。你给模型的 prompt 必须包含完整执行条件包括角色、任务、输出格式、约束范围。不要只写“帮我总结”而要写“你是技术文档撰写专家请把以下内容总结为 5 条要点每条不超过 50 字使用 Markdown 列表输出”。第二个是示例驱动Few-shot。Claude 对示例非常敏感。在 prompt 里给出 1 到 3 组“输入-输出”示例能让输出格式和风格明显更稳定。尤其是做 JSON 结构化输出时示例比任何“请严格按照 JSON 格式输出”的描述都管用。第三个是上下文窗口利用。Claude 部分模型支持百万级 token 上下文这意味着你可以把整本文档、整个代码仓库的核心文件放进 prompt。但不要以为“放得下就放”上下文越长单次请求的 token 成本和延迟越高所以要围绕“信息密度”筛选上下文内容。第四个是结构化输出与工具调用。通过 system prompt 指定 XML/JSON 输出、或通过 tools 参数定义函数可以让模型输出直接对接程序逻辑。这是 Claude API 区别于朴素聊天界面的关键能力也是认证考试的重点。第五个是评估与迭代。提示词工程不是写完就结束而是要建立一组测试样例每次修改后跑批对比输出质量。Part 8 的考题无论怎么出基本都跑不出这五个方向。下面我们从代码层面把它们逐一验证。3. 环境准备与前置条件这部分不需要装 ComfyUI、不需要下载模型文件只是把 API 调用环境准备好。整体检查清单如下。3.1 准备 Anthropic API Key访问 Anthropic Consoleplatform.claude.com / console.anthropic.com注册账号后在 API Keys 页面创建密钥。创建后要立即复制保存密钥只显示一次。密钥以sk-ant-开头后续所有请求的 Header 里都要带x-api-key。3.2 准备 Python 环境建议用 Python 3.9 以上版本创建独立虚拟环境避免依赖冲突。python -m venv .venv source .venv/bin/activate # Windows 使用 .venv\Scripts\activate pip install anthropic requests python-dotenv3.3 配置环境变量不要把 API Key 写死在代码里。项目根目录创建.env文件ANTHROPIC_API_KEYsk-ant-你的密钥 ANTHROPIC_MODELclaude-sonnet-4实际模型名要根据你账号可用的模型列表来定不同地区和不同账号的模型可用性可能不同最稳妥的方式是打开官方模型列表确认后再填写。代码读取方式import os from dotenv import load_dotenv load_dotenv() api_key os.getenv(ANTHROPIC_API_KEY) model os.getenv(ANTHROPIC_MODEL)3.4 网络与代理说明Claude API 是海外服务国内访问时可能遇到连接超时或不稳定。如果你所在网络环境无法直接访问需要自行评估网络方案。这里只提醒一句请求失败时先区分是网络问题还是 API 参数问题不要一上来就改代码。4. Claude API 接入与最小可运行示例先跑通一个最简请求再逐步加提示词工程技巧。4.1 使用 curl 发起第一次 Claude API 请求打开终端先设置环境变量再执行请求export ANTHROPIC_API_KEYsk-ant-你的密钥 curl https://api.anthropic.com/v1/messages \ -H x-api-key: $ANTHROPIC_API_KEY \ -H anthropic-version: 2023-06-01 \ -H content-type: application/json \ -d { model: claude-sonnet-4, max_tokens: 1024, messages: [ {role: user, content: 请用一句话解释什么是提示词工程} ] }请求结构里的关键参数model模型名需要替换为你账号可用的模型。max_tokens模型返回内容的最大 token 数注意它不包含输入 prompt 的 token。messages对话消息数组至少包含一条 user 消息。system可选用于给定全局指令后续示例会用到。如果返回内容里有content数组并且content[0].type为text说明调用成功。4.2 使用 Python SDK 调用用 anthropic SDK 会更方便处理流式和工具调用。import os from dotenv import load_dotenv import anthropic load_dotenv() client anthropic.Anthropic( api_keyos.getenv(ANTHROPIC_API_KEY) ) message client.messages.create( modelos.getenv(ANTHROPIC_MODEL, claude-sonnet-4), max_tokens1024, messages[ {role: user, content: 请用一句话解释什么是提示词工程} ] ) print(message.content[0].text)运行后如果正常打印一句话说明 SDK 接入成功。接下来所有提示词工程测试都可以基于这段代码扩展。5. Part 8 功能测试提示词工程验证用例下面用 6 组测试用例把 Part 8 涉及的核心提示词能力全部过一遍。每组用例我都会给出目的、输入、预期结果和失败排查方向。5.1 基础指令测试System Prompt 的作用测试目的验证 system prompt 是否能稳定约束输出风格。输入示例message client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokens1024, system你是一名严谨的技术文档工程师。回答必须使用中文使用列表呈现总字数不超过100字。, messages[ {role: user, content: 介绍一下Claude API的Messages接口} ] ) print(message.content[0].text)预期结果输出为中文列表结构清晰且每条信息有实际内容。判断标准内容是否出现了 system prompt 中要求的“列表”“中文”“100字以内”这三个特征。失败排查如果输出仍是长段落检查 system 是否传成了消息或模型版本是否支持 system 参数。5.2 结构化输出测试JSON 输出测试目的让模型返回可直接解析的 JSON。输入示例import json response client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokens1024, system你是一个信息抽取助手。只输出JSON不要输出其他文字。, messages[ {role: user, content: 从下面的招聘信息中抽取岗位名称、城市、薪资范围。\n\n产品经理base北京月薪25k-40k要求3年以上经验。} ] ) print(response.content[0].text)预期结果输出类似{岗位: 产品经理, 城市: 北京, 薪资范围: 25k-40k}。判断标准能否直接用json.loads()解析。失败排查如果输出带着 Markdown 代码块如json说明提示词约束不够强。可以补充“不要使用代码块包裹”也可以在代码侧先剥掉代码块标记。5.3 Few-shot 少样本测试测试目的验证示例对输出风格的控制力。输入示例messages [ {role: user, content: 将文本分类为【科技】【财经】【娱乐】。\n\n示例\n文本AI芯片市场规模增长\n分类科技\n\n文本央行宣布降低存款准备金率\n分类财经\n\n文本某艺人新专辑发布\n分类娱乐}, {role: assistant, content: 明白了请发送需要分类的文本。}, {role: user, content: 文本Claude API推出新版本上下文窗口达到百万token级别} ] response client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokens100, system你是文本分类助手只输出分类结果。, messagesmessages ) print(response.content[0].text)预期结果直接输出“科技”或“【科技】”。判断标准分类是否走完并且格式和 few-shot 示例一致。失败排查如果输出出现解释文字说明 few-shot 示例的“输入-输出”边界不够清晰可以在示例后加一句“直接输出分类结果不要解释”。5.4 思维链测试测试目的让模型分步推理而不是直接给答案。输入示例response client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokens1024, system你是一个逻辑推理助手。请先分步骤列出推理过程再给出最终结论。, messages[ {role: user, content: 一个水池有A、B两个进水管A管单独注满需要4小时B管单独注满需要6小时两管同时开需要多少小时注满} ] ) print(response.content[0].text)预期结果输出有“第一步”“第二步”等推理步骤最终结论为 2.4 小时。判断标准推理过程是否完整且结果正确。失败排查如果模型直接给答案缺少过程检查 system prompt 是否明确要求“分步骤”。如果结果是错的检查题目是否容易产生歧义或者改用更强推理的模型版本。5.5 长上下文测试1M token 场景测试目的验证长文档场景下的上下文利用能力。Claude 部分模型上下文窗口可达 1048576 tokens但具体可用长度取决于账号和模型版本。输入示例long_text 这里放入长文档内容比如一份技术方案或一本公开书籍的章节 response client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokens2048, system你是文档分析助手。请根据提供的文档回答用户的问题。, messages[ {role: user, content: f文档内容如下\n\n{long_text}\n\n请总结这份文档的五个核心观点。} ] ) print(response.content[0].text)预期结果模型能结合文档内容输出总结而不是泛泛而谈。判断标准总结中的信息点是否能对应到原文。失败排查如果收到400错误且提示maximum context length说明输入 token 超出当前模型限制。需要裁剪文档、用摘要替换原文或者改用支持更大上下文的模型。5.6 工具调用Function Calling测试测试目的验证 Claude API 是否能返回结构化工具调用。输入示例tools [ { name: get_weather, description: 获取指定城市的天气信息, input_schema: { type: object, properties: { city: {type: string, description: 城市名称} }, required: [city] } } ] response client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokens1024, toolstools, messages[ {role: user, content: 北京今天天气怎么样} ] ) for block in response.content: if block.type tool_use: print(工具名:, block.name) print(参数:, block.input)预期结果输出工具名: get_weather参数: {city: 北京}。判断标准Content 中包含tool_use类型块。失败排查如果模型直接输出自然语言而不是工具调用检查 tools 参数是否传对、工具描述是否清晰、模型版本是否支持 tool use。6. 接口 API 与批量任务把提示词测试变成脚本认证准备阶段建议把上面这些测试用例组织成一份批量测试脚本每次修改提示词后跑一遍方便对比。下面是一个简化的批量测试示例import json import os import time from dotenv import load_dotenv import anthropic load_dotenv() client anthropic.Anthropic(api_keyos.getenv(ANTHROPIC_API_KEY)) test_cases [ { name: system_prompt_test, system: 你是严谨的技术文档工程师使用中文列表输出。, user: 介绍一下Claude API的Messages接口, max_tokens: 1024 }, { name: json_output_test, system: 只输出JSON不要其他文字。, user: 抽取信息岗位名称、城市、薪资范围。产品经理base北京月薪25k-40k。, max_tokens: 1024 } ] results [] for case in test_cases: try: response client.messages.create( modelos.getenv(ANTHROPIC_MODEL), max_tokenscase[max_tokens], systemcase[system], messages[{role: user, content: case[user]}] ) results.append({ name: case[name], output: response.content[0].text, usage: response.usage }) except Exception as e: results.append({ name: case[name], error: str(e) }) time.sleep(1) # 控制请求频率 with open(prompt_test_results.json, w, encodingutf-8) as f: json.dump(results, f, ensure_asciiFalse, indent2) print(测试完成结果已写入 prompt_test_results.json)跑完后再根据输出质量决定是否调整提示词。这个脚本也可以扩展成从 CSV 或 JSON 文件批量读取测试用例适合在认证备考周期内反复使用。批量任务有两个注意点。第一个是速率限制不同账号的 RPM每分钟请求数和 TPM每分钟 token 数不一样脚本里要保留请求间隔或退避重试。第二个是 token 成本批量跑长上下文用例时要留意每次调用的usage字段它会返回input_tokens和output_tokens方便估算成本。7. 上下文窗口、Token 与性能观察Claude API 调用不需要观察本地显存但需要观察三个东西请求延迟、Token 消耗、上下文命中率。7.1 上下文窗口从相关技术讨论看Claude 部分模型上下文窗口可以达到 1048576 tokens 的级别。实际能不能用满取决于模型名、账号配额和请求是否超限。当你在请求中看到类似maximum context length is 1048576 tokens的报错时说明输入内容已经超过了上限。1M token 的真实含义是你可以把一份几百页的文档放进去做问答而不是像传统聊天窗口那样只保留最后几轮对话。但要注意输入 token 越多单次请求的处理时间越长费用也越高。7.2 Token 计算Claude API 的响应里会带usage字段例如{ input_tokens: 123, output_tokens: 456 }想要在请求前估算输入 token可以用官方 tokenizer 或 SDK 自带的计数方法。中英文的 token 占比不同一般可以按经验做估算但最终以接口返回为准。7.3 性能观察测试时重点记录四个指标指标观察方式预期首字延迟Python 中记录请求开始到收到第一个响应的时间受网络和请求长度影响总耗时整体请求耗时输入越长耗时越高输入 token 数response.usage.input_tokens应小于模型上限输出 token 数response.usage.output_tokens应小于max_tokens如果发现请求变慢优先检查输入长度和网络而不是盲目换模型。7.4 降低消耗的手段长文档先做切片只保留相关段落。压缩无关示例few-shot 控制在 3 组以内。降低max_tokens不让模型输出多余内容。对重复使用的知识文本先离线总结成摘要再放进 prompt。8. 常见问题与排查方法问题现象可能原因排查方式解决方案返回401或403API Key 无效或权限不足检查 Key 是否完整、账号是否过期重新生成 API Key返回400提示maximum context length is 1048576 tokens输入内容超过模型上下文限制打印usage计算输入 token裁剪输入、分段处理或换更大模型返回529 overloaded服务端过载通常为临时问题检查错误信息是否包含server-side issue退避重试间隔数秒再请求返回429触发速率限制或余额不足检查账号配额和余额降低请求频率或提高账号配额请求超时网络不稳定curl 测试连通性检查网络环境重试claude命令无法识别Claude Code 未安装或 PATH 未配置执行claude --version重新安装或手动加入 PATH输出不是 JSON提示词约束不够强检查系统提示和 few-shot 示例增加“只输出JSON”约束增加示例这里重点说两个高频错误。第一个是529 overloaded。这个报错从字面看就是服务端过载官方说明通常提示this is a server-side issue, usually temporary。遇到它不要改代码直接在脚本里做指数退避重试。比如第一次等 2 秒第二次等 4 秒最多重试 5 次。第二个是400 maximum context length。当提示词写法涉及长文档时很容易触发。解决方法不是压缩提示词质量而是压缩输入内容。你可以先让 Claude 对文档分段做摘要再把摘要拼接后做二次分析形成“两阶段处理”流程。9. 认证准备最佳实践与合规边界Part 8 的学习不只是“会用 API”而是建立一套可复用的提示词工程方法。下面几条实践对认证考试和实际项目都适用。9.1 建立提示词测试集准备 10 到 20 条固定测试用例覆盖文本总结、信息抽取、代码生成、逻辑推理等场景。每次修改提示词后全量跑一遍用输出结果对比效果而不是凭感觉判断。9.2 固定模型版本不同模型版本对提示词的反应可能不同。认证练习和正式项目都要把模型名固定不要在测试过程中随意切换。如果模型升级导致输出变化优先检查官方发布说明再决定是否调整提示词。9.3 提示词版本管理把提示词当作代码管理。System prompt、few-shot 示例、参数配置都可以放进 Git 仓库修改时留历史记录。这个习惯在团队协作中尤其重要。9.4 代码与密钥安全API Key 永远不要提交到公开仓库。.env文件放入.gitignore生产环境使用密钥管理服务。一旦发现 Key 泄露立刻在控制台吊销并重新生成。9.5 合规与隐私边界使用 Claude API 处理文本时不要上传包含个人隐私、商业机密的敏感数据除非你确认数据链路和授权范围。涉及人脸、声音、版权素材等领域的内容必须确认合法授权后再处理。批量调用要遵守平台服务条款不要试图绕过速率限制或安全限制。9.6 发布前人工复核即使模型输出格式正确也不代表内容正确。在商用或对外发布前一定要有人工复核环节尤其是涉及事实判断、法律建议、医疗建议等高风险场景。10. 总结与下一步这一篇把所有内容聚焦在 Claude Certified Architect Part 8 的提示词工程前置准备上。最值得先做的事很简单先跑通一个 Messages 请求然后把 5.2 的结构化输出测试和 5.6 的工具调用测试做一遍。这两个用例能直观地让你感受到 Claude API 和普通聊天框的差异。最容易踩的坑是上下文超限和 529 过载。上下文超限需要在调用前就估算输入长度529 则需要写入重试逻辑。这两条解决后大部分 API 集成问题都不会再卡住你。接下来可以往三个方向继续扩展一是深入工具调用把 Claude API 接到真实业务系统里二是研究 RAG把知识库检索与长上下文结合三是基于测试集做提示词评估用数据驱动的方式优化每个 prompt。把这几个点串起来Claude 架构师认证的核心能力框架基本就建立起来了建议收藏备用。