当前位置: 首页 > news >正文

Context Engineering 2026:超越Prompt工程的下一个AI能力边界

如果说Prompt工程是"写好一段话让模型更好地回答你",那么Context Engineering就是"系统性地设计并管理模型看到的所有信息,让AI系统在复杂任务中持续表现优异"。
2026年,随着模型上下文窗口扩展到100万token(Gemini 2.5 Pro支持200万),随着Agent系统处理的任务越来越复杂,Context Engineering已经成为AI工程师最重要的核心技能之一。## 为什么需要Context Engineering传统Prompt工程关注单次对话的输入设计。但现代AI应用面临的挑战更复杂:- Agent需要在多轮任务执行中保持连贯性- RAG系统需要决定把哪些文档放入上下文- 多Agent系统需要在Agent间高效传递信息- 长文档处理需要管理超出窗口限制的内容- 成本控制要求精简上下文而不损失关键信息这些都不是"写好一段Prompt"能解决的问题,需要系统化的Context Engineering方法论。## Context的五个维度Context不只是"你发给模型的文字",它包含五个维度:### 1. Instructions(指令)告诉模型它是谁、要做什么、有什么约束。pythonSYSTEM_INSTRUCTION = """你是一个专业的代码审查助手,专注于Python后端代码。职责:- 发现安全漏洞(OWASP Top 10)- 识别性能问题- 检查代码规范(PEP 8)- 建议最佳实践限制:- 只评审Python代码,其他语言说明无法处理- 不修改代码,只提建议- 每个问题必须给出具体的修改建议,不只是指出问题输出格式:1. 问题描述(一句话)2. 严重程度(高/中/低)3. 修改建议(具体代码示例)"""原则:指令要精确,不要模糊。“尽量简洁"不如"回答不超过200字”。“注意安全"不如"重点检查SQL注入和XSS漏洞”。### 2. Memory(记忆)模型没有持久记忆,但你可以把重要信息注入上下文:pythonclass ContextMemory: """管理注入到上下文的记忆信息""" def __init__(self): self.short_term = [] # 当前对话历史 self.working = {} # 当前任务的工作状态 self.long_term = {} # 跨会话的持久信息 def get_memory_context(self, token_budget: int = 2000) -> str: """生成注入上下文的记忆摘要,控制在token预算内""" parts = [] # 长期记忆(用户偏好、历史决策) if self.long_term: parts.append(f"用户偏好:{json.dumps(self.long_term, ensure_ascii=False)}") # 工作状态(当前任务进度) if self.working: parts.append(f"当前任务状态:{json.dumps(self.working, ensure_ascii=False)}") # 控制长度 full_memory = "\n".join(parts) if len(full_memory) > token_budget * 3: # 粗略token估算 full_memory = full_memory[:token_budget * 3] # 截断 return full_memory### 3. History(历史)对话历史是最消耗Token的部分,需要精细管理:pythonclass HistoryManager: def __init__(self, max_tokens: int = 6000): self.messages = [] self.max_tokens = max_tokens def estimate_tokens(self, text: str) -> int: return len(text) // 3 # 中文粗略估算 def add_message(self, role: str, content: str): self.messages.append({ "role": role, "content": content, "tokens": self.estimate_tokens(content) }) def get_trimmed_history(self) -> list: """从最新消息倒推,保留在token预算内的历史""" result = [] total_tokens = 0 for msg in reversed(self.messages): if total_tokens + msg["tokens"] > self.max_tokens: break result.insert(0, {"role": msg["role"], "content": msg["content"]}) total_tokens += msg["tokens"] return result async def compress_old_history(self, llm) -> str: """将早期历史压缩为摘要""" cutoff = len(self.messages) // 2 old_messages = self.messages[:cutoff] summary_prompt = f""" 将以下对话摘要为100字以内的关键信息点,保留重要的决策和事实: {json.dumps(old_messages, ensure_ascii=False)} """ return await llm.agenerate(summary_prompt)### 4. Tools(工具)工具定义本身也是Context,会消耗Token:python# 工具定义优化:精简描述,减少Token消耗tools = [ { "name": "search_codebase", "description": "在代码库中搜索相关代码", # 简洁描述 "parameters": { "type": "object", "properties": { "query": { "type": "string", "description": "搜索关键词" } }, "required": ["query"] } }]# 动态工具选择:根据任务类型只注入相关工具def get_relevant_tools(task_type: str) -> list: """根据任务类型返回相关工具子集,减少无关工具的Token消耗""" tool_sets = { "coding": ["search_codebase", "run_tests", "read_file"], "research": ["web_search", "read_url", "take_notes"], "data_analysis": ["query_database", "create_chart", "export_data"], } return [t for t in all_tools if t["name"] in tool_sets.get(task_type, [])]### 5. Retrieved Content(检索内容)RAG系统中,如何选择注入哪些文档是Context Engineering的核心:pythonclass SmartRetriever: def __init__(self, vectorstore, reranker, token_budget: int = 4000): self.vectorstore = vectorstore self.reranker = reranker self.token_budget = token_budget async def retrieve_for_context(self, query: str) -> list: # 1. 初始检索(多查多) candidates = await self.vectorstore.asimilarity_search(query, k=20) # 2. 重排序(精准筛选) reranked = await self.reranker.rerank(query, candidates, top_n=10) # 3. Token预算控制 selected = [] total_tokens = 0 for doc in reranked: doc_tokens = len(doc.page_content) // 3 if total_tokens + doc_tokens > self.token_budget: break selected.append(doc) total_tokens += doc_tokens return selected def format_for_context(self, docs: list, query: str) -> str: """将文档格式化为上下文字符串""" parts = [f"以下是与「{query}」相关的参考资料:\n"] for i, doc in enumerate(docs, 1): source = doc.metadata.get("source", "未知来源") parts.append(f"[{i}] 来源:{source}\n{doc.page_content}\n") return "\n".join(parts)## Context窗口的位置效应研究和实践都发现:LLM对上下文中不同位置的内容注意程度不同。Lost in the Middle现象:模型对上下文头部(开始)和尾部(结束)的内容记忆最好,中间部分容易被"遗忘"。pythondef optimize_context_layout(system: str, history: list, retrieved_docs: list, user_query: str) -> list: """优化上下文布局,把重要内容放在头部和尾部""" messages = [] # 头部:系统指令(模型最先看到,印象深) messages.append({"role": "system", "content": system}) # 中间:对话历史(内容最多,但注意力稀释) messages.extend(history) # 尾部User消息:关键检索内容 + 用户问题(最后看到,印象深) user_content = "" if retrieved_docs: user_content += format_docs(retrieved_docs) + "\n\n" user_content += f"问题:{user_query}\n\n请基于以上资料回答。" messages.append({"role": "user", "content": user_content}) return messages## Context Engineering实践:Agent工作流在Agent系统中,Context Engineering最复杂,也最重要:pythonclass AgentContextBuilder: """为Agent构建高质量的执行上下文""" def __init__(self, agent_config: dict): self.config = agent_config self.execution_history = [] # 已执行步骤记录 def build_context(self, current_task: str, available_tools: list, recent_observations: list, token_budget: int = 8000) -> list: """构建完整的Agent执行上下文""" sections = [] used_tokens = 0 # 1. Agent身份和能力(固定消耗,约200 tokens) agent_identity = self._get_agent_identity() sections.append(("system", agent_identity)) used_tokens += 200 # 2. 当前任务(高优先级,约100 tokens) task_section = f"当前任务:{current_task}" sections.append(("task", task_section)) used_tokens += 100 # 3. 可用工具(动态,根据任务选择) tools_desc = self._format_tools(available_tools) tools_tokens = len(tools_desc) // 3 if used_tokens + tools_tokens < token_budget * 0.3: sections.append(("tools", tools_desc)) used_tokens += tools_tokens # 4. 执行历史摘要(压缩历史) remaining = token_budget - used_tokens history_summary = self._summarize_history(remaining * 0.4) sections.append(("history", history_summary)) # 5. 最近观察结果(最重要,放最后) for obs in recent_observations[-3:]: # 最近3条 sections.append(("observation", obs)) return self._assemble_messages(sections) def _summarize_history(self, token_budget: float) -> str: """将执行历史压缩到token预算内""" if not self.execution_history: return "" # 只保留关键决策和结果 key_steps = [ step for step in self.execution_history if step.get("is_key_decision", False) ] if not key_steps: return f"已完成 {len(self.execution_history)} 个步骤。" return "关键步骤:\n" + "\n".join([ f"- {step['action']}:{step['result'][:100]}" for step in key_steps[-5:] ])## 衡量Context Engineering效果pythonclass ContextQualityMetrics: """衡量Context Engineering的质量指标""" def measure_efficiency(self, context: list, output_quality: float) -> dict: """信息效率 = 输出质量 / 上下文Token数""" total_tokens = sum( len(msg["content"]) // 3 for msg in context ) return { "total_tokens": total_tokens, "output_quality": output_quality, "efficiency": output_quality / (total_tokens / 1000), "context_compression_ratio": self._estimate_compression(context) }Context Engineering是一门关于"信息管理"的工程学——把对的信息,在对的时机,以对的方式,放进模型的上下文里。随着AI系统复杂度不断提升,这项能力将越来越决定AI应用的天花板。

http://www.jsqmd.com/news/868344/

相关文章:

  • 不用再加班,苦力时代正在瓦解,AI将重塑汽车电子产业格局
  • Gemini 硕博论文写作技巧:数据图表分析怎么做更稳
  • 别再只用Graphics2D了!5个Java图片缩放方案实战评测:从Thumbnailator到OpenCV,谁画质最好?
  • 告别一堆转接头!一个自研小工具搞定USB、网口、485、232、TTL互转(附配置教程)
  • 多项式形式验证与LLM在数字电路设计中的应用
  • 2026年知名的台湾DHF钨钢铣刀/极度耐磨钨钢钻头铣刀厂家对比推荐 - 行业平台推荐
  • 雪花算法工具类
  • 别再死记硬背了!用可视化调试工具SR_DebugHelper,5分钟看懂饥荒Mod的Entity结构
  • C++ Kafka实战:用librdkafka手写一个带自定义分区和事件回调的生产者
  • 2026年多门店商城小程序怎么做
  • 拼三角【牛客tracker 每日一题】
  • 懂复盘的人,职场成长速度快别人十倍
  • 手把手教你用Mosquitto + PowerShell玩转MQTT消息订阅与发布(实战测试篇)
  • Vue 3 + 高德地图实战:打造全能定位与搜索组件
  • DocKit v1.0 发布 — AI 原生 NoSQL 桌面客户端,支持 Elasticsearch、OpenSearch 和 DynamoDB,本地优先,Apache 2.0 开源
  • 2026年靠谱的进口合金刀片/东莞合金刀片多家厂家对比分析 - 行业平台推荐
  • AMBA CHI协议SACTIVE信号机制与低功耗设计解析
  • 2026年商家怎么弄小程序店铺
  • 不止于Windows:用QtService源码打造跨平台(Windows/Linux)守护进程的实践指南
  • WordPress与PageAdmin CMS深度技术对比:从架构到国产化合规的全维度分析
  • 基于SpringBoot2+vue2的健身房管理系统
  • python社区技术论坛交流平台
  • 排查GD32串口幽灵数据:从MAX490电路设计到Keil下载报错的完整避坑指南
  • 保姆级教程:DBeaver社区版23.3.5安装与国内镜像配置,彻底告别驱动下载失败
  • 别再只会用默认库了!用OrCAD Capture CIS高效创建Homogeneous与Heterogeneous复合器件
  • 手把手教你配置海康NVR的GB28181国标编号,彻底告别‘通道数0’问题
  • 专业的监测平台哪家好
  • 告别开发依赖!SAP顾问必学的SQ01/SQ02/SQ03实战:5步搞定自定义报表
  • AI时代什么建站软件功能强大?从GEO流量重构看CMS的智慧进化
  • 2026年4月技术好的展台搭建公司口碑推荐,展馆/博物馆展馆/展台展厅搭建/展台促销台搭建,展台搭建全包服务哪个好 - 品牌推荐师