从Prompt Engineering到Context Engineering:结构化提示词的最佳实践指南
从Prompt Engineering到Context Engineering结构化提示词的最佳实践指南刚开始接触大语言模型开发时你是不是也和我一样觉得写提示词就像在“许愿”把问题一股脑儿扔给模型然后祈祷它能理解你的意图给出完美的答案。这种“单轮对话”的模式在简单任务上或许还行但一旦涉及复杂逻辑、多步骤推理或者需要保持上下文连贯的场景问题就接踵而至了。一、传统单轮Prompt的局限性为什么你的AI“记性不好”我们最初使用大模型往往是从一个简单的input_text开始的。比如让模型写一首关于春天的诗。这很直接效果也立竿见影。但当我们尝试更复杂的交互时比如构建一个代码助手或者一个多轮对话客服机器人单轮Prompt的短板就暴露无遗了。上下文丢失与“金鱼记忆”这是最头疼的问题。你问模型“帮我写一个Python函数计算斐波那契数列。”它写出来了。紧接着你问“优化一下它的性能。”模型很可能已经忘了上一轮对话中“它”指的是哪个函数甚至可能开始优化一个完全不同的算法。每一轮对话对模型来说都是全新的开始缺乏记忆连贯性。意图漂移与对话失控在多轮对话中用户的意图可能会逐渐细化或转移。例如用户先问“推荐几本好书”然后基于推荐追问“其中哪本最适合初学者”。如果只用单轮Prompt处理第二轮问题模型可能无法将“其中”与上一轮推荐的书单关联起来导致回答脱节对话走向变得不可预测。难以维护与复用当你的应用有多个功能模块如代码审查、文案生成、问答时为每个功能写一套冗长的、包含所有系统指令和示例的Prompt会变得极其臃肿且难以管理。任何细微的调整都可能需要重写大段文本毫无工程性可言。这些痛点让我们意识到仅仅停留在“写一句聪明的话”的Prompt Engineering阶段是远远不够的。我们需要一种能系统性管理对话状态、明确交互结构的方法。这就是Context Engineering和Structured Prompting登场的背景。二、技术演进从“许愿”到“工程化”的跨越Prompt Engineering更侧重于设计单次输入的文本以“诱导”模型产生特定格式或内容的输出。它的核心是“这一次我该怎么问”。Context Engineering则上升了一个维度它关注的是如何在整个交互会话中有效地构建、管理和利用上下文信息。这不仅仅是历史对话记录的堆砌而是有策略地组织系统指令、对话历史、工具调用结果、外部知识等形成一个结构化的“对话背景板”。它的核心是“在整个对话中我该如何维持模型的认知状态”。而Structured Prompting结构化提示词是实现Context Engineering的关键技术。它将原本平铺直叙的提示文本按照角色、规则、示例、历史等不同模块进行组织通常使用清晰的标记如##系统指令##、##用户##、##助手##或配置文件如YAML/JSON来定义。结构化提示词带来了三大核心优势可维护性与可复用性将系统指令、示例对话、响应格式等模块化。你可以像搭积木一样组合不同的模板轻松适配不同场景修改时也只需调整特定模块。意图清晰与角色稳定通过明确分隔系统指令和对话历史能有效防止模型在长对话中“忘记”自己的角色和任务减少指令被淹没或误解的情况。上下文管理精细化你可以精确控制哪些历史对话片段被保留、哪些被总结或丢弃从而在有限的上下文窗口内塞入最有效的信息应对Token长度限制。三、核心实现用代码构建你的对话引擎理论说再多不如看代码。让我们来看看如何在实际项目中应用这些理念。1. 多轮对话上下文管理一个健壮的对话系统需要维护一个会话状态。下面是一个简化的Python类演示了如何管理上下文class ConversationManager: def __init__(self, system_prompt, max_history_turns10, max_token_length4000): 初始化对话管理器。 :param system_prompt: 系统指令定义AI的角色和能力。 :param max_history_turns: 保留的最大对话轮数用户助手为一轮。 :param max_token_length: 预估的上下文最大Token限制。 self.system_prompt system_prompt self.max_history_turns max_history_turns self.max_token_length max_token_length self.conversation_history [] # 格式[{role: user, content: ...}, {role: assistant, content: ...}] def add_user_message(self, message): 添加用户消息到历史记录。 self.conversation_history.append({role: user, content: message}) self._trim_history() # 添加后自动修剪 def add_assistant_message(self, message): 添加助手AI消息到历史记录。 self.conversation_history.append({role: assistant, content: message}) self._trim_history() def _trim_history(self): 修剪历史记录防止超出限制。 # 策略1如果轮数超限从最旧的对话开始删除 while len(self.conversation_history) self.max_history_turns * 2: # *2 因为一轮包含user和assistant self.conversation_history.pop(0) self.conversation_history.pop(0) # 成对删除 # 策略2更高级可以在这里加入Token计数逻辑如果总Token超限则进行智能摘要或删除最不重要的历史。 def get_prompt_for_model(self): 组装最终发送给模型的完整Prompt。 # 结构化组装系统指令 对话历史 full_prompt f## 系统指令 ##\n{self.system_prompt}\n\n## 对话历史 ##\n for turn in self.conversation_history: role_prefix 用户 if turn[role] user else 助手 full_prompt f{role_prefix}: {turn[content]}\n full_prompt \n## 当前回合 ##\n助手 return full_prompt # 使用示例 manager ConversationManager( system_prompt你是一个专业的Python编程助手回答需简洁准确并提供代码示例。, max_history_turns5 ) manager.add_user_message(如何用Python读取JSON文件) # 模拟AI回复 manager.add_assistant_message(可以使用内置的json模块。示例import json; with open(data.json) as f: data json.load(f)) manager.add_user_message(如果文件很大怎么优化) # 此时get_prompt_for_model()会包含系统指令、第一轮QA和第二轮用户问题形成连贯上下文。关键设计决策成对删除历史保证对话历史的完整性避免出现用户提问没有AI回答的“断头”历史。结构化拼接用##标签##清晰分隔不同部分帮助模型理解文本结构。预留优化接口_trim_history方法中的“策略2”注释处为未来实现基于Token长度的智能裁剪如总结旧历史留出了空间。2. 使用YAML定义结构化提示模板将提示词配置化是提升工程化水平的标志。我们可以用YAML文件来定义复杂的提示模板# coding_assistant_template.yaml name: Python代码专家 version: 1.0 description: 用于处理Python编程问题的提示模板 structure: system_role: | 你是一个资深Python开发者精通标准库和流行框架。你的职责是 1. 提供准确、高效的代码解决方案。 2. 解释代码的关键逻辑和潜在风险。 3. 遵循PEP 8代码风格规范。 4. 如果用户问题模糊先请求澄清。 response_format: | 你的回答必须严格遵循以下格式 **解释**[对问题和技术选型的简要说明] **代码** python [你的代码] **说明**[代码关键行的注释或注意事项] few_shot_examples: - user: 怎么反转一个列表 assistant: | **解释**可以使用切片操作这是最Pythonic和高效的方式。 **代码** python my_list [1, 2, 3, 4, 5] reversed_list my_list[::-1] **说明**[::-1]是切片语法从开始到结束步长为-1即反向遍历。 - user: 遍历字典的键和值 assistant: | **解释**使用items()方法。 **代码** python my_dict {a: 1, b: 2} for key, value in my_dict.items(): print(key, value) **说明**items()返回一个视图对象包含(key, value)对。 context_rules: - 保留最近5轮完整对话。 - 当历史超过3轮时对最早的两轮对话进行一句话总结并替换原内容。 - 用户提供的错误代码片段必须始终保留在上下文中以供参考。然后在主程序中加载和使用这个模板import yaml def load_prompt_template(filepath): with open(filepath, r, encodingutf-8) as f: return yaml.safe_load(f) template load_prompt_template(coding_assistant_template.yaml) # 组装动态Prompt def build_dynamic_prompt(template, conversation_history, current_query): prompt_parts [] prompt_parts.append(f# 系统角色\n{template[structure][system_role]}) prompt_parts.append(f\n# 响应格式要求\n{template[structure][response_format]}) if template[structure].get(few_shot_examples): prompt_parts.append(\n# 参考示例) for ex in template[structure][few_shot_examples]: prompt_parts.append(f用户{ex[user]}) prompt_parts.append(f助手{ex[assistant]}) prompt_parts.append(f\n# 对话历史\n{conversation_history}) prompt_parts.append(f\n# 当前问题\n用户{current_query}\n助手) return \n.join(prompt_parts)这种方式将提示词从代码中解耦非开发者也能参与修改示例和规则极大地提高了协作效率和迭代速度。四、避坑指南生产环境中常见的三个大坑即使有了好的结构实践中还是会踩坑。下面是我总结的三个常见问题及解法Token超限对话被截断问题随着对话进行上下文越来越长最终超过模型的最大上下文窗口导致最早的、可能关键的信息被丢弃。解决方案实现动态上下文窗口管理。不要简单保留所有历史。可以采用以下策略关键信息优先将系统指令、用户最近的问题和AI最近的回答设为高优先级永远保留。历史摘要当历史较长时调用模型自身对较早的对话进行总结用总结文本替代原始长文本。例如“之前用户咨询了Python列表操作我们讨论了反转和排序。”滑动窗口只保留最近N轮对话这是最简单直接的方法。角色混淆与指令淹没问题在长对话中模型可能逐渐“忘记”最初的系统指令或者将用户之前说的话误当作新的指令。解决方案强化结构分隔和定期“提醒”。在组装最终Prompt时始终将系统指令放在最前面并用非常醒目的标记如[SYSTEM RULES - DO NOT FORGET]包裹。每隔几轮对话可以温和地重述或提及核心指令。例如在助手回复的开头可以加一句“根据我作为代码助手的职责我将...”。处理用户提供的长文档或代码问题用户可能粘贴一大段代码或文档让AI分析这瞬间占满上下文且其中包含大量无关细节。解决方案预处理和分块。请求摘要在用户粘贴超长内容时可以设计流程让AI先请求用户提供简要描述或指出重点。外部存储与检索将长文档存入向量数据库。当用户提问时只检索最相关的片段放入上下文而不是整个文档。这是构建知识库类应用的典型模式。五、性能优化上下文窗口与推理速度的权衡上下文窗口Context Window不是越大越好。更大的窗口意味着更强的长文理解能力可以处理更长的文档、维持更久的对话记忆。更高的计算成本与更慢的推理速度模型需要处理更多的Token导致生成延迟增加API调用费用也更贵。潜在的“中间部分注意力稀释”有些模型对上下文中间部分的注意力可能较弱关键信息放在开头或结尾效果更好。如何选择对话型应用通常8K-16K的窗口足够维持数十轮高质量对话。采用“滑动窗口摘要”策略32K或更长的窗口可能带来不必要的成本。长文档分析/代码仓库分析需要128K甚至更长窗口。但应配合“检索增强生成RAG”技术先检索相关部分而非将整个仓库塞进Prompt。简单任务/单次问答使用最小的可用窗口如4K以最大化速度和成本效益。一个简单的原则是用能满足需求的最小有效上下文窗口。在开发阶段可以监控平均每次请求的Token消耗作为优化依据。六、思考与展望在智能与成本之间寻找平衡最后留给大家一个思考题如何平衡提示词的复杂度与模型的推理成本更复杂、更结构化的提示词通常意味着更长的输入Token和更精确的输出控制这无疑会提升效果。但每一个Token都在消耗算力和金钱。我的实践心得是分层设计设计一个“精简版”系统指令用于简单交互一个“完整版”用于复杂任务。根据用户问题的复杂度动态选择。效果量化不要盲目追求复杂。为关键任务定义可量化的评估指标如回答准确率、用户满意度评分通过A/B测试验证增加提示词复杂度是否带来了显著的指标提升。成本监控与告警为你的应用设置平均每次对话的Token成本阈值并建立监控。当成本异常上升时能快速回溯是否是提示词结构变化导致的。从Prompt Engineering到Context Engineering本质上是从“技巧”走向“架构”的思维转变。它要求我们像设计软件系统一样去设计与大模型交互的协议、状态管理和数据流。这条路还在快速演进中但掌握结构化和工程化的思想无疑能让你在构建可靠AI应用的道路上走得更稳、更远。如果你对亲手构建一个能听、能说、能思考的完整AI应用感兴趣光有“提示词工程”思维还不够还需要将多种AI能力语音、对话、语音合成串联起来。我最近体验了一个非常棒的动手实验——从0打造个人豆包实时通话AI它完美地体现了“工程化”思维在AI应用开发中的落地。在这个实验中你不再是零散地调用API而是像搭积木一样将语音识别ASR、大语言模型LLM、语音合成TTS三个模块集成起来构建一个实时语音对话的完整链路。你会遇到并解决如何管理语音流上下文、如何保证对话低延迟等非常实际的工程问题。整个过程有清晰的步骤引导即使是新手也能跟着一步步完成最终获得一个能实际运行的Web应用。它让我对“Context Engineering”在真实多模态场景下的应用有了更深的理解推荐你也去动手试试看。

相关新闻

越有钱的人越往山里跑:人类骨子里的“野性“藏着什么秘密?

越有钱的人越往山里跑:人类骨子里的“野性“藏着什么秘密?

你有没有过这样的时刻——城市里待久了,忽然特别想去一个有山有水的地方,什么都不干,就坐着发呆。风吹过树梢的声音,远处鸟叫了几声,你深深吸一口气,觉得整个人像被重新"充了电"。这不是矫情&…

2026/7/6 22:37:31 阅读更多 →
comsol远场偏振图,二维能带图,Q因子云图,Q因子鲁棒性图,所见即所得。 Light

comsol远场偏振图,二维能带图,Q因子云图,Q因子鲁棒性图,所见即所得。 Light

comsol远场偏振图,二维能带图,Q因子云图,Q因子鲁棒性图,所见即所得。 Light:Science&Applications完整复现,2022年的利用高阶拓扑荷来合并连续域中的束缚态(合并bic,merging bic…

2026/7/7 7:50:07 阅读更多 →
Java筑梦:畅享一站式智慧旅游新体验

Java筑梦:畅享一站式智慧旅游新体验

Java筑梦:畅享一站式智慧旅游新体验在旅游业数字化转型的浪潮中,Java凭借其跨平台、高并发、安全稳定等特性,成为构建智慧旅游系统的理想选择。通过整合物联网、大数据、人工智能等技术,Java赋能的智慧旅游系统实现了从行程规划、…

2026/5/17 6:14:37 阅读更多 →

最新新闻

告别网络限制:VBrowser-Android 全网视频缓存终极解决方案

告别网络限制:VBrowser-Android 全网视频缓存终极解决方案

告别网络限制:VBrowser-Android 全网视频缓存终极解决方案 【免费下载链接】VBrowser-Android 全网视频嗅探缓存APP 项目地址: https://gitcode.com/gh_mirrors/vb/VBrowser-Android 在移动互联网时代,网络不稳定和流量限制常常成为视频观看的痛点…

2026/7/7 7:50:04 阅读更多 →
博物馆文物低蓝光照明改造为什么首选KNX?系统方案、优势与行业避坑指南

博物馆文物低蓝光照明改造为什么首选KNX?系统方案、优势与行业避坑指南

一、引言:文物照明改造,不止“调亮调暗”这么简单博物馆日常运维里,光照对展品的损害是持续累积的,尤其书画、古籍、丝织品、壁画这类光敏材质,照度不准、光谱不对,时间一长就是褪色、脆化、剥落&#xff0…

2026/7/7 7:46:03 阅读更多 →
3分钟上手Real-ESRGAN-ncnn-vulkan:打造高性能图像超分辨率神器

3分钟上手Real-ESRGAN-ncnn-vulkan:打造高性能图像超分辨率神器

3分钟上手Real-ESRGAN-ncnn-vulkan:打造高性能图像超分辨率神器 【免费下载链接】Real-ESRGAN-ncnn-vulkan NCNN implementation of Real-ESRGAN. Real-ESRGAN aims at developing Practical Algorithms for General Image Restoration. 项目地址: https://gitcod…

2026/7/7 7:46:03 阅读更多 →
Aimmy:重新定义游戏公平竞技的AI瞄准辅助,让每位玩家都能享受射击游戏的乐趣

Aimmy:重新定义游戏公平竞技的AI瞄准辅助,让每位玩家都能享受射击游戏的乐趣

Aimmy:重新定义游戏公平竞技的AI瞄准辅助,让每位玩家都能享受射击游戏的乐趣 【免费下载链接】Aimmy Universal Second Eye for Gamers with Impairments (Universal AI Aim Aligner (AI Aimbot) - ONNX/YOLOv8 - C#) 项目地址: https://gitcode.com/g…

2026/7/7 7:44:03 阅读更多 →
专业的EMBA综合实力TOP5榜单深度评测

专业的EMBA综合实力TOP5榜单深度评测

一、评测引言随着国内企业全球化布局加速、数字化转型深入,兼具国际化视野与本土落地能力的中英双语EMBA项目,成为企业创始人、高层管理者突破管理瓶颈、搭建全球资源网络的核心选择。当前市场EMBA项目品类繁杂,内地高校、港澳院校项目各有优…

2026/7/7 7:40:02 阅读更多 →
多机器人路径规划为何要抛弃Sum of Costs?执行时间可预测性才是工业核心

多机器人路径规划为何要抛弃Sum of Costs?执行时间可预测性才是工业核心

1. 为什么Sum of Costs在多机器人调度中越来越“不准”了?我第一次在物流分拣中心看到那套号称“最优”的多机器人路径规划系统时,心里就打了个问号。系统输出的Sum of Costs(所有机器人路径长度之和)是237.8秒,现场工…

2026/7/7 7:40:02 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻