视频和文章内容来自Anthropic Applied AI团队的分享,主讲人是Anthropic工程师Hannah Moran和Christian Ryan。他们通过一个真实客户案例的改编版本,展示了如何将一个简单的AI提示词优化成工业级应用。
原始任务需求:
一家瑞典保险公司每天需要处理大量车险理赔案件,需要AI分析两份瑞典语材料(事故报告表格和手绘事故草图),判断事故责任方,最终辅助人类理赔员工作。具体材料包括一份包含17个复选框的瑞典语车祸报告表(分别描述车辆A和车辆B的行为)和一份人工手绘的事故现场草图。
最精彩的是,他们从Claude把车祸误判为"滑雪事故"的尴尬开始(因为表格中的街道名"Chappangan"在瑞典很常见),一步步展示了Prompt Engineering的威力。
核心内容:5步打造精准AI助手
1、任务上下文是一切的基础——从滑雪到车祸的转变
初始prompt只有一句话:"review an accident report form and determine what happened and who's at fault"。结果Claude以为这是滑雪事故。
V1到V2的关键改进:
- 明确角色定位从简单的一句话变成了"You are an AI assistant helping a human claims adjuster reviewing car accident report forms in Swedish",直接点明了这是车险理赔场景,避免了AI的误判,同时建立了助手与人类理赔员的协作关系。这个改变让AI立即进入了正确的"思维模式"。
- 设定工作场景不仅明确了这是车险理赔,还加入了"reviewing forms in Swedish"的语言提示,让AI准备好处理瑞典语材料,预设了正确的语言处理模式,避免了语言识别的额外猜测。
- 添加判断原则"Do not make an assessment if you're not fully confident"看似简单,实际上建立了一个关键的决策边界,让AI知道"不确定"是一个可接受的答案,比错误的确定性判断更有价值。这一点在实际应用中极其重要,因为它直接影响到保险理赔的准确性。
2、背景信息要前置且结构化——17个复选框的秘密
最大的突破来自于将表格的完整结构说明放入系统提示词。这份瑞典语表格包含17个预定义的驾驶行为选项,但AI初次看到时需要逐个猜测含义。
系统提示词中添加的关键信息:
- 表格的完整结构说明不仅包括标题"Swedish car accident form"和两列布局,更重要的是详细列出了全部17个复选框的确切含义,从"停车/静止"到"倒车"的每一个选项,让AI不需要猜测或推断每个框的含义。这种详尽的预先说明将AI的认知负担从"理解表格"转移到"读取表格",效率提升显著。
- 人类填表习惯的说明特别提到"可能用圆圈、涂鸦、叉号等各种标记",这个看似细节的补充实际上预防了AI因为寻找标准"X"标记而漏判的问题,体现了对真实世界复杂性的深刻理解。团队还明确指出"任何标记都应视为选中",建立了清晰的判断标准。
- XML标签的结构化组织使用<form_details>等标签不仅让信息更有层次,更重要的是让AI可以在后续推理中精确引用这些信息,建立了一个可被AI理解和调用的"知识库"。这种结构化方式也便于后续的prompt维护和更新。
3、指令顺序决定推理质量——先看表格再看草图的智慧
这是最反直觉但效果最显著的优化。团队发现,改变分析顺序可以显著提升准确率。
V3到V4的执行步骤优化:
- 第一步"仔细检查表格"要求AI逐个检查所有17个复选框,明确记录哪些被选中、哪些未选中,不要遗漏任何细微的标记,这种系统性的扫描确保了基础数据的完整性。这个步骤虽然会产生冗长的输出,但保证了AI不会遗漏关键信息,为后续判断奠定了坚实基础。
- 第二步"形成初步理解"是基于选中的复选框构建事故的基本事实,例如确定"车辆A在直行(框3被选中),车辆B在右转(框12被选中)",这个步骤将离散的复选框信息转化为连贯的事故叙述。这种转化过程模拟了人类理赔员的思维方式,从数据到故事的转换让AI建立了清晰的事故图景。
- 第三步"带着上下文分析草图"是整个优化的精髓,AI不再面对抽象的线条和方框,而是带着"车辆A直行、车辆B右转"的先验知识去理解空间关系,验证草图是否与表格信息一致。这种方法避免了AI对草图的过度解读或误判,同时也能发现表格中没有体现的空间细节。
- 第四步"综合判断"强调只有当证据充分且一致时才做出责任判定,如果信息矛盾或不清晰则明确说明无法判断,这个原则确保了输出的可靠性。这种谨慎的态度对于保险理赔这种高风险决策场景至关重要,宁可不判断也不要错误判断。
4、输出格式化是工程化的关键——从冗长分析到精准结论
对于实际应用,保险公司需要的不是AI的思考过程,而是可以直接入库的结构化数据。
输出优化的演进过程展示了工程思维:
- V2版本输出包含大量推理细节和过程描述,虽然有助于理解AI的思考过程,但对于需要处理大量案例的保险公司来说信息密度太低,难以自动化处理。这个版本更像是"AI在大声思考",而不是在提供可用的业务数据。
- V3版本因为要求"仔细检查每个框"导致输出更加冗长,AI会逐一报告每个复选框的状态,虽然确保了完整性但牺牲了效率,这个教训提醒我们指令的副作用。过于详细的过程要求可能导致输出膨胀,需要在完整性和简洁性之间找到平衡。
- V4版本通过明确的XML格式要求实现了结构化输出,<form_analysis>包含关键事实,<sketch_analysis>提供空间分析,<final_verdict>给出明确判断和理由,每个部分都可以被程序直接解析和使用。这种格式不仅便于自动化处理,也保留了必要的推理依据供人工审核。
5、迭代是prompt工程的灵魂——从失败中学习的艺术
整个演示展示了真实的prompt开发流程:不是一次成功,而是通过多次迭代逐步改进。
迭代过程揭示的关键洞察:
- 从V1到V2的跃迁发现了场景设定的重要性,一个简单的"car accident"限定词就能避免"滑雪事故"的误判,这提醒我们永远不要高估AI的"常识",每个假设都需要明确表达。这个发现改变了团队对AI能力边界的认识。
- 从V2到V3的改进聚焦于背景知识的提供,将17个复选框的含义预先告知极大提升了理解准确度,这说明结构化的领域知识注入是提升AI表现的关键路径。这个改进也展示了系统提示词的价值,不变的背景信息应该被复用而不是每次重复。
- 从V3到V4的优化发现了认知顺序的影响,先表格后草图的分析顺序显著提升了判断准确性,这个发现挑战了"一次性输入所有信息"的直觉,证明了引导AI的推理路径的重要性。这种顺序设计本质上是在为AI设计一个最优的信息处理流程。
- 整个迭代过程坚持了科学方法:保持测试用例不变(同样的表格和草图),每次只改变一个主要变量,详细记录每个版本的改进点和效果,建立可重现的实验环境。这种方法论确保了每个改进都是可验证的,避免了"碰运气"式的优化。
高级技巧与最佳实践
Prompt结构的标准模板及其设计理念
团队推荐的标准结构不是随意的排列,而是基于认知科学和工程实践的最优设计:
- 任务描述:放在最前面是因为它设定了整个交互的框架和期望,就像函数签名定义了函数的用途,这个位置确保AI首先理解"我要做什么",然后才是"如何做"。
- 内容输入:作为动态数据放在中间,既确保了任务context已经建立,又为后续的详细指令提供了处理对象,这种三明治结构保证了信息的逻辑流动。
- 详细指令:提供step-by-step的执行指南,放在内容之后是因为这时AI已经知道要处理什么数据,可以更好地理解指令的具体含义,避免了抽象指令的歧义。
- 示例(Few-shot):虽然本案例未使用,但它们的位置设计是为了在AI已经理解任务和方法后,提供具体的"这样做是对的"的参考,起到校准和验证的作用。
- 重要提醒:放在最后是利用了"近因效应",确保关键原则在AI开始执行前还"新鲜"地保留在context中,这对于防止AI在长篇推理中"遗忘"关键约束特别重要。
Few-shot示例的设计哲学
虽然演示中没有使用,但团队特别强调了示例在处理边界案例时的价值:
- 对于"灰色地带"的案例,比如责任五五开的情况,或者多车连环事故,提供2-3个专家标注的示例可以让AI理解微妙的判断标准,这些示例本质上是在传授"判例法"。
- 视觉示例可以通过base64编码直接嵌入,让AI学习如何解读模糊的手写标记、不规范的草图,这种视觉few-shot learning在处理真实世界的混乱输入时特别有效。
- 示例的组织使用<example>标签不仅是为了结构清晰,更重要的是让AI能够明确区分"这是示例"和"这是当前任务",避免混淆,同时便于示例库的维护和更新。
Claude4 扩展思考功能的战略价值
新模型的thinking功能不仅是一个调试工具,更是prompt优化的"作弊器":
- 通过观察AI的思考过程,可以发现prompt中的歧义表述,比如AI可能在思考"这个标记算不算选中",提示我们需要更明确的判断标准。
- Thinking tags揭示了AI的推理链路,帮助我们理解为什么某些情况下AI会做出错误判断,这种"思维透明度"让prompt优化从猜测变成了科学。
- 长期收集thinking patterns可以建立"AI认知模型",了解AI倾向于如何理解特定类型的指令,从而设计更符合AI"思维习惯"的prompt。
实际部署考虑
生产环境的成本优化策略
- Prompt缓存不仅能降低成本,更重要的是能提供一致的响应延迟,对于需要SLA保证的企业应用,将17个复选框说明和其他静态信息缓存可以显著提升服务稳定性。
- 成本计算示例:假设每天处理1000个案例,系统提示词有2000 tokens,通过缓存可以节省90%的输入token成本,月度节省可达数千美元,这种优化在规模化部署时效果显著。
错误处理的层次化设计
- 第一层是AI自身的不确定性表达,通过"only judge when confident"的原则,让AI主动标记不确定的案例,这比强制判断更有价值。
- 第二层是业务规则校验,比如"如果双方都在直行却发生事故,必须人工复核",这种规则可以捕获AI可能忽视的逻辑矛盾。
- 第三层是人工审核机制,对于AI标记为不确定的案例,或者涉及重大赔付的案例,自动路由到人工处理,确保关键决策的可靠性。
总结与启发
这个案例完美展示了prompt engineering是一门结合了认知科学、软件工程和领域知识的实证科学。从一个会把车祸认成滑雪事故的AI,到能准确判断事故责任的专业助手,整个过程不是魔法,而是系统化的工程实践。
关键成功因素:
- 场景设定的具体性:每个词都有其作用,"car accident"两个词避免了荒谬的误判
- 信息组织的结构化:好的信息架构让AI的认知负担最小化,效率最大化
- 推理顺序的逻辑性:模拟专家的思维过程,而不是一股脑扔给AI所有信息
- 输出格式的实用性:为机器设计输出,为人类保留可读性,两者兼顾
- 优化过程的科学性:假设-实验-验证的循环,每一步都有据可查
Q&A
Q:为什么Claude会把车祸理解成滑雪事故?这反映了什么深层问题?
A:这个错误完美展示了AI的"无知之幕"和人类的"知识诅咒"。Claude看到"accident report"和瑞典地名"Chappangan",在没有明确上下文的情况下,可能联想到了瑞典作为滑雪胜地的印象。但更深层的问题是,我们人类往往忘记了自己的"默认假设"——当我们说"事故报告"时,大脑会自动根据上下文推断这很可能是交通事故,但AI没有这种"生活经验"形成的先验概率。这提醒我们,与AI协作时需要"初心思维",假设AI对世界一无所知。
Q:为什么要把不变的信息放在系统提示词而不是用户提示词中?这个决策背后的工程权衡是什么?
A:这涉及三个层面的精妙权衡。
- 经济层面:系统提示词可以被缓存,假设每天1000次调用,2000 token的背景信息,缓存可以节省90%的成本,这是实实在在的经济效益。
- 架构层面:这种分离体现了"关注点分离"原则,系统提示词是"配置",用户提示词是"输入",清晰的边界让系统更易维护。
- 认知层面:对AI来说,系统提示词建立了一个稳定的"世界模型",用户提示词则是在这个模型中的具体"任务",这种分层符合人类和AI的认知架构。
想象一下,如果每次都要告诉AI那17个复选框的含义,就像每次开车都要重新学习交通规则一样低效。
Q:这个案例中最容易被忽视但最有价值的优化是什么?为什么它如此重要?
A:是告诉AI人类填表的不规范性——"可能用圆圈、涂鸦或叉号"。这个细节看似微小,实则触及了AI系统设计的核心问题:真实世界的复杂性。没有这个说明,AI可能会像一个刚毕业的新人,期待看到教科书般标准的"X"标记,结果面对潦草的圈圈就不知所措。这个优化的价值在于它改变了AI的"容错阈值",从寻找"完美匹配"转变为"合理识别"。最好的prompt不是那些描述理想情况的,而是那些预见并包容现实混乱的。在更广的意义上,这代表了从"实验室思维"到"生产环境思维"的转变。
发表评论