签到成功

知道了

CNDBA社区CNDBA社区

大模型 Agent 上下文工程(Context Engineering) 说明

2025-09-17 23:32 2 0 转载 大模型
作者: dave

在大模型Agent开发中,上下文工程(Context Engineering) 是一个核心环节,其本质是通过设计、优化和管理输入到大模型中的上下文信息,确保模型能够准确理解任务目标、高效调用工具,并生成符合预期的输出。以下是对其关键要点的深入解析:

http://www.cndba.cn/dave/article/131731
http://www.cndba.cn/dave/article/131731http://www.cndba.cn/dave/article/131731
http://www.cndba.cn/dave/article/131731
http://www.cndba.cn/dave/article/131731http://www.cndba.cn/dave/article/131731


1. 上下文工程的核心目标

  • 精准性:确保模型能准确捕捉任务的关键信息,避免因上下文模糊或缺失导致的误解。
  • 效率性:通过减少冗余信息,降低计算资源消耗(如token成本),提升模型响应速度。
  • 稳定性:避免上下文过长导致的注意力漂移(Attention Drift)或幻觉(Hallucination)。
  • 灵活性:支持动态调整上下文,适应不同任务需求(如多轮对话、跨领域任务)。

2. 上下文工程的关键策略

(1) 信息标签化与结构化

  • 标签化:为每条信息添加标签(如“用户需求”“历史记录”“工具参数”),帮助模型快速识别关键内容。
  • 结构化:将上下文按逻辑分块(如问题描述、约束条件、目标结果),避免信息混杂。
  • 示例
    {
      "用户需求": "生成一份市场分析报告",
      "时间范围": "2023年Q1-Q4",
      "数据来源": "内部销售数据 + 行业报告"
    }
    

(2) RAG(Retrieval-Augmented Generation)优化

  • 精准检索:通过嵌入模型(如all-MiniLM-L6-v2)匹配问题与文档的相关性,确保检索到的信息与任务高度相关。
  • 排序与重组:将高相关性内容置于首尾(便于模型聚焦),低相关性内容放在中间(减少干扰)。
  • 代码示例(基于LangChain):http://www.cndba.cn/dave/article/131731http://www.cndba.cn/dave/article/131731

    from langchain.embeddings import HuggingFaceBgeEmbeddings
    from langchain.vectorstores import Chroma
    from langchain.retrievers import LongContextReorder
    
    def process_context(texts, query):
        embeddings = HuggingFaceBgeEmbeddings(model_name="all-MiniLM-L6-v2")
        vectorstore = Chroma.from_texts(texts, embeddings)
        retriever = vectorstore.as_retriever(search_kwargs={"k": 10})
        docs = retriever.get_relevant_documents(query)
        reordered_docs = LongContextReorder().transform_documents(docs)
        return reordered_docs
    

(3) 上下文修剪与注意力分配

  • 修剪冗余:删除重复或无关信息(如过时的历史对话、低相关性文档)。
  • 注意力重构:通过调整上下文顺序或权重,引导模型优先关注关键部分。
  • 示例:在营销任务中,将用户画像和产品需求放在前500个token内,确保模型优先处理。

(4) 上下文隔离与线程管理

  • 隔离失败上下文:当任务失败时,不直接修改原上下文,而是新开线程处理错误,避免污染主流程。
  • 多线程协作:为复杂任务拆分多个子任务,每个子任务使用独立的上下文空间(如context_id标识)。

(5) 动态总结与卸载机制

  • 复述总结:定期对长上下文进行摘要,防止信息过载(如每1000 token总结一次关键点)。
  • 卸载非核心信息:将非关键信息(如中间计算结果)存入外部存储,仅保留必要内容在模型输入中。

3. 上下文工程的实践挑战

  • 长上下文精度问题:模型对中间位置的信息关注不足(Lost in the Middle),需通过排序策略优化。
  • 多模态上下文整合:如何将文本、图像、表格等多模态信息统一编码为模型可理解的上下文。
  • 动态上下文更新:实时任务中需根据用户反馈或环境变化动态调整上下文(如客服Agent需实时更新客户历史记录)。

4. 行业应用案例

  • 机械星球星知Agent(知识库[4]):
    通过MCP协议(Model Context Protocol)标准化上下文管理,实现自主规划与自动执行。例如,在营销获客场景中,Agent根据商户需求动态构建上下文,自动匹配潜在客户并生成沟通策略。
  • 飞书智能体(知识库[1]):
    通过标签化和定制化上下文需求,使不同Agent(如客服、销售)在共享模型基础上实现差异化行为。

5. 总结

上下文工程的本质是为大模型构建一个清晰、高效、动态的“信息环境”。它不仅是技术问题(如RAG优化),更是系统设计问题(如线程隔离、总结机制)。优秀的上下文工程能让Agent在复杂任务中保持稳定性,减少幻觉和偏航,从而真正实现“自主规划+自动执行”的智能化升级。

http://www.cndba.cn/dave/article/131731
http://www.cndba.cn/dave/article/131731

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2297
    原创
  • 3
    翻译
  • 608
    转载
  • 198
    评论
  • 访问:9127015次
  • 积分:4506
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ