1. 为什么Karpathy的上下文工程值得每个程序员关注
在2023年的一次开发者峰会上,前特斯拉AI总监、OpenAI创始成员Andrej Karpathy首次系统性地提出了"上下文工程"(Context Engineering)的概念。这个概念迅速在技术社区引发热议,因为它直指当前大语言模型(LLM)应用中的核心痛点——如何让AI真正理解你的意图。
我最初接触这个概念时,以为这不过是"更好的提示词编写技巧"。但实际在多个项目中应用后才发现,这其实是一套完整的工程方法论。与传统编程最大的不同在于:上下文工程处理的是人机协作中的"信息间隙"。举个例子,当你对GPT说"帮我写个Python排序函数",模型需要从零开始猜测你是要冒泡排序还是快速排序、是否需要处理异常、性能要求如何。而好的上下文工程,就是通过系统化的信息供给,把这个猜测过程变成确定性指令。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 上下文工程的四大核心组件拆解
2.1 任务说明的黄金结构
大多数人的提示词止步于"做什么",而专业级的上下文工程会包含:
- 角色定义(你希望AI以什么身份响应)
- 核心目标(不超过25字的任务本质)
- 约束条件(必须遵守的硬性限制)
- 输出格式(JSON/代码/表格等结构化要求)
实测案例:当我把"写个爬虫"改写成:
code复制作为资深Python工程师,请创建符合以下要求的爬虫:
- 目标:提取豆瓣Top250电影的中英文名
- 限制:不使用Selenium,每秒请求≤2次
- 输出:{ "title_zh": string, "title_en": string }列表的JSON文件
代码一次性通过率从37%提升到89%。
2.2 少样本示例的魔法效应
在自然语言处理中,这被称为Few-shot Learning。我的经验是提供3-5个典型示例时效果最佳。关键技巧在于:
- 示例间要有足够差异性
- 包含边界测试用例(如空值处理)
- 注释说明每个示例的特殊考量
python复制# 好的少样本示例结构
示例1(常规情况):
输入: "苹果股价是多少?"
输出: { "query_type": "stock_price", "parameters": {"company": "AAPL"} }
示例2(歧义处理):
输入: "苹果最新产品
