<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      解密prompt系列56.Agent context Engineering - 單智能體代碼剖析

      近期關(guān)于智能體設(shè)計(jì)有諸多觀點(diǎn),一個(gè)關(guān)鍵點(diǎn)讓我豁然開朗——無論智能體是1個(gè)還是多個(gè),是編排驅(qū)動(dòng)還是自主決策,是靜態(tài)預(yù)定義還是動(dòng)態(tài)生成,Context上下文的管理機(jī)制始終是設(shè)計(jì)的核心命脈。它決定了:每個(gè)節(jié)點(diǎn)使用哪些信息?分別更新或修改哪些信息?多步驟間如何傳遞?智能體間是否共享、如何共享?后續(xù)篇章我們將剖析多個(gè)熱門開源項(xiàng)目,一探它們?nèi)绾务{馭Context。本章聚焦單智能體設(shè)計(jì),選取兩個(gè)代表性框架:模仿OpenAI深度研究范式的Gemini-fullstack(編排式)與模仿Manus的OpenManus(自主式)。

      框架對(duì)比

      先來整體對(duì)比下兩個(gè)框架,這樣懶得看細(xì)節(jié)的盆友們就可以只看下表了~

      特性 Gemini Deep Search (編排式) OpenManus Flow Mode (規(guī)劃式自主) OpenManus Manus Mode (純自主)
      智能體類型 單智能體,編排驅(qū)動(dòng) 單智能體,全局規(guī)劃 + 分步ReAct循環(huán) 單智能體,ReAct循環(huán)
      任務(wù)分解 固定流程節(jié)點(diǎn) 全局Plan 動(dòng)態(tài)思考下一步(Think)
      Context 范圍 節(jié)點(diǎn)級(jí)隔離 (每節(jié)點(diǎn)用特定輸入) Step級(jí)隔離 (每Step用Plan狀態(tài)+當(dāng)前任務(wù)) 線性增長(zhǎng)+窗口截?cái)?/strong> (全歷史)
      Context 傳遞 傳遞任務(wù)結(jié)果 (Query列表, 摘要文本) 外層:傳遞Plan狀態(tài) + Step結(jié)果字符串;內(nèi)層全部歷史 傳遞完整ReAct歷史 (截?cái)嗪?
      狀態(tài)管理 無顯式狀態(tài),依賴數(shù)據(jù)流 顯式Plan & Step狀態(tài)管理 隱含在消息歷史中
      優(yōu)勢(shì) 流程清晰可控,模塊化,引用處理優(yōu)雅 步驟Context輕量,潛在減少迭代次數(shù) 靈活性高
      挑戰(zhàn) 靈活性較低,節(jié)點(diǎn)間“思考”不共享 Plan質(zhì)量依賴(或需要?jiǎng)討B(tài)調(diào)整),Step間Context隔離可能導(dǎo)致信息斷層/沖突 Context膨脹,長(zhǎng)程依賴易丟失,多輪消息會(huì)引入噪音

      Gemini Deep Search- 編排智能體

      Gemini Deep Search 是一個(gè)典型的編排式智能體。其執(zhí)行流程預(yù)先定義,核心在于引入了反思節(jié)點(diǎn),用于動(dòng)態(tài)判斷信息收集是否充分。流程清晰簡(jiǎn)潔:

      image

      圖釋:Gemini Deep Search的核心編排流程,包含查詢生成、并行搜索、反思評(píng)估、路由決策和最終答案生成五個(gè)關(guān)鍵節(jié)點(diǎn),通過反思節(jié)點(diǎn)實(shí)現(xiàn)循環(huán)控制。

      1. 查詢生成(Generate Query)

      image

      • 核心亮點(diǎn):將“思考過程”工具化/結(jié)構(gòu)化輸出。
      • 使用Pydantic模型強(qiáng)制輸出包含查詢列表(query)和推理依據(jù)(rationale)
      
      class SearchQueryList(BaseModel):
          query: List[str] = Field(
              description="A list of search queries to be used for web research."
          )
          rationale: str = Field(
              description="A brief explanation of why these queries are relevant to the research topic."
          )
      

      實(shí)際應(yīng)用中會(huì)發(fā)現(xiàn)把 思考工具化(結(jié)構(gòu)化) 有很多優(yōu)點(diǎn):

      • 模型無關(guān)性: 不依賴模型的“思考”原生能力,任何支持結(jié)構(gòu)化輸出的模型皆可。
      • 簡(jiǎn)潔可控: 結(jié)構(gòu)化輸出比模型自由生成的思考通常更簡(jiǎn)短、更聚焦,避免冗余和發(fā)散。。

      2. 并行搜索+摘要(Web_research)

      image

      然后就是基于多個(gè)query的并行搜索模塊這里直接使用了Langgraph自帶的Send多線程并發(fā)模式,然后直接讓大模型基于檢索上文進(jìn)行總結(jié)。這里可參考不多,因?yàn)橐蒙傻冗壿嬙贕emini的API中,用開源模型的盆友需要重新適配。

      不過有意思的是現(xiàn)在如何給模型推理插入引用,原來多數(shù)都是在指令中加入要求,讓模型一邊推理一邊生成引用序號(hào)[i]([citation:i]),不過在新的模型能力下有了很多天馬星空的方案。像Claude給出過先直接進(jìn)行無引用推理,然后再讓模型重新基于推理結(jié)果,在不修改原文的基礎(chǔ)上,插入引用的markdown鏈接。

      這里Google是直接推理API中集成了類似能力,哈哈我也沒用過Gemini的API,不過看代碼,應(yīng)該是類似以下的結(jié)構(gòu), 會(huì)通過結(jié)構(gòu)化推理(哈哈Google很愛用結(jié)構(gòu)化推理,其實(shí)個(gè)人也覺得不論是工具還是Function Calling或者是Thinking,最底層的對(duì)接方案還是結(jié)構(gòu)化推理),返回引用序號(hào)列表對(duì)應(yīng)的文字段落的起止位置。

      # Gemini API響應(yīng)結(jié)構(gòu)
      response.candidates[0].grounding_metadata = {
          "grounding_supports": [
              {
                  "segment": {"start_index": 0, "end_index": 50},
                  "grounding_chunk_indices": [0, 1, 2]
              }
          ],
          "grounding_chunks": [
              {
                  "web": {
                      "uri": "https://example.com/page1",
                      "title": "Example Page 1"
                  }
              }
          ]
      }
      

      考慮到這里涉及兩次模型推理,第一次就是每個(gè)query的搜索總結(jié),第二次是最終基于所有總結(jié)段落的二次匯總推理。因此這里項(xiàng)目在本次推理(第一次)中把citation以markdown超鏈接的格式插回到了原文中,這樣二次推理可以直接生成引用鏈接。(URL進(jìn)行了縮寫,降低推理token和copy出錯(cuò)的可能性)

      3. 反思評(píng)估(Reflection)

      image

      • 評(píng)估當(dāng)前收集的摘要信息是否足以回答用戶問題。
      • 同樣采用結(jié)構(gòu)化輸出,個(gè)人實(shí)踐的優(yōu)化點(diǎn): 可擴(kuò)展Reflection模型,加入reasoning字段,讓模型先分析“回答用戶需要什么信息?”、“當(dāng)前已有哪些信息?”,再做出判斷和提出補(bǔ)充查詢,使決策更透明、依據(jù)更充分。
      class Reflection(BaseModel):
          is_sufficient: bool = Field(
              description="Whether the provided summaries are sufficient to answer the user's question."
          )
          knowledge_gap: str = Field(
              description="A description of what information is missing or needs clarification."
          )
          follow_up_queries: List[str] = Field(
              description="A list of follow-up queries to address the knowledge gap."
          )
      
      

      4. 決策路由(Router)

      image

      • 根據(jù)Reflection節(jié)點(diǎn)的輸出 (is_sufficient) 和預(yù)設(shè)的最大循環(huán)次數(shù),決定流程走向(繼續(xù)搜索Generate Query或進(jìn)入Finalize Answer)。
      • Context管理:此節(jié)點(diǎn)本身不修改Context,僅基于Reflection的Context進(jìn)行流程控制。

      5. 生成最終答案(Finalize Answer)

      image

      • 匯總所有步驟收集到的摘要信息(已包含Markdown引用鏈接)
      • 進(jìn)行最終推理,生成回答,并保留摘要中已嵌入的引用信息。

      Context管理

      Gemini的Context管理

      • 模塊化隔離: 每個(gè)節(jié)點(diǎn)聚焦特定任務(wù),使用特定的Context輸入(如Generate Query只用原始Query,Web Research用特定Query列表,Reflection用所有摘要)。
      • 無狀態(tài)傳遞: 節(jié)點(diǎn)間不共享“推理狀態(tài)”上下文(如之前的思考過程),主要傳遞任務(wù)結(jié)果(Query列表、摘要文本)。

      OpenManus - 自主智能體

      OpenManus 提供了兩種模式:Manus Mode(基礎(chǔ)ReAct)和Flow Mode(規(guī)劃驅(qū)動(dòng))。雖然項(xiàng)目將Flow稱為“多智能體”,但從Context管理角度看,更像是單智能體的兩種任務(wù)分解策略:Manus是局部規(guī)劃+即時(shí)執(zhí)行,F(xiàn)low是全局規(guī)劃(Plan)+分步執(zhí)行(Manus)。

      Manus 模式:經(jīng)典ReAct循環(huán)

      image

      Manus模式本質(zhì)是ReAct循環(huán):思考(Think)->行動(dòng)(Act)->觀察(Observe),循環(huán)執(zhí)行直至任務(wù)完成。核心流程:

      • Think: 基于當(dāng)前Context(用戶問題+歷史消息+可用工具描述),模型決定下一步動(dòng)作(調(diào)用哪個(gè)工具及其參數(shù))。
      • Act: 執(zhí)行所選工具(如browser-use進(jìn)行復(fù)雜網(wǎng)頁交互操作、文本編輯器)。
      • Observe: 將工具執(zhí)行結(jié)果作為ToolMessage加入Context。
      • 循環(huán)上述步驟,直到Think選擇終止工具。

      Manus的Context管理
      線性增長(zhǎng): 整個(gè)任務(wù)由一個(gè)智能體完成,Context隨執(zhí)行步驟線性增長(zhǎng),每一步都使用前置的所有message信息。

      Flow 模式

      image

      Flow的核心思想是引入全局Plan規(guī)劃器。在當(dāng)前模型能力下,先規(guī)劃再執(zhí)行有助于:

      • 簡(jiǎn)化步驟Context: 每個(gè)Manus步驟只需關(guān)注當(dāng)前Step和Plan狀態(tài),上下文更輕量。
      • 減少迭代次數(shù): 全局視野可能降低智能體陷入局部循環(huán)的概率。
      • 潛在挑戰(zhàn): 步驟間Context隔離可能導(dǎo)致信息重復(fù)/沖突;全局規(guī)劃器傳遞任務(wù)時(shí)可能丟失細(xì)節(jié)(Context Gap)。

      Plan工具設(shè)計(jì) (核心): Plan本身通過結(jié)構(gòu)化工具實(shí)現(xiàn)管理:

      • 兩層結(jié)構(gòu): Plan -> Steps。
      • 操作完備: 創(chuàng)建(Create)、更新(Update)、列表(List)、獲取(Get)、激活(Set Active)、標(biāo)記步驟狀態(tài)(Mark Step)、刪除(Delete)
      • 狀態(tài)跟蹤: Step狀態(tài)包括未開始(not_started)、進(jìn)行中(in_progress)、完成(completed)、阻塞(blocked)。
      • 核心參數(shù)示例如下
      class PlanningTool(BaseTool):
          """
          A planning tool that allows the agent to create and manage plans for solving complex tasks.
          The tool provides functionality for creating plans, updating plan steps, and tracking progress.
          """
      
          name: str = "planning"
          description: str = _PLANNING_TOOL_DESCRIPTION
          parameters: dict = {
              "type": "object",
              "properties": {
                  "command": {
                      "description": "The command to execute. Available commands: create, update, list, get, set_active, mark_step, delete.",
                      "enum": [
                          "create",
                          "update",
                          "list",
                          "get",
                          "set_active",
                          "mark_step",
                          "delete",
                      ],
                      "type": "string",
                  },
                  "plan_id": {
                      "description": "Unique identifier for the plan. Required for create, update, set_active, and delete commands. Optional for get and mark_step (uses active plan if not specified).",
                      "type": "string",
                  },
                  "title": {
                      "description": "Title for the plan. Required for create command, optional for update command.",
                      "type": "string",
                  },
                  "steps": {
                      "description": "List of plan steps. Required for create command, optional for update command.",
                      "type": "array",
                      "items": {"type": "string"},
                  },
                  "step_index": {
                      "description": "Index of the step to update (0-based). Required for mark_step command.",
                      "type": "integer",
                  },
                  "step_status": {
                      "description": "Status to set for a step. Used with mark_step command.",
                      "enum": ["not_started", "in_progress", "completed", "blocked"],
                      "type": "string",
                  },
                  "step_notes": {
                      "description": "Additional notes for a step. Optional for mark_step command.",
                      "type": "string",
                  },
              },
              "required": ["command"],
              "additionalProperties": False,
          }
      

      下面我們來看下Plan創(chuàng)建、遍歷、更新的整個(gè)流程

      1. 創(chuàng)建初始Plan (create_initial_plan):
      • 基于用戶Query生成Plan (Steps)。
      • Prompt設(shè)計(jì)的幾個(gè)亮點(diǎn)關(guān)鍵詞: 簡(jiǎn)潔有力,強(qiáng)調(diào)關(guān)鍵里程碑(Key Milestones)、可行動(dòng)性(Actionable)、清晰度(Clarity)、效率(Efficiency)。
      system_message = Message.system_message(
          "You are a planning assistant. Create a concise, actionable plan with clear steps. "
          "Focus on key milestones rather than detailed sub-steps. "
          "Optimize for clarity and efficiency."
      )
      
      # Create a user message with the request
      user_message = Message.user_message(
          f"Create a reasonable plan with clear steps to accomplish the task: {request}"
      )
      
      • 效果評(píng)估: 生成的Plan結(jié)構(gòu)(Plan-Step兩層)清晰,但內(nèi)容質(zhì)量(步驟邏輯、并行性)較基礎(chǔ),有優(yōu)化空間。

      image

      1. 執(zhí)行Plan (execute):
      • 按順序遍歷Plan中的每個(gè)Step。
      • 將當(dāng)前Step標(biāo)記為in_progress。
      • 調(diào)用execute_step執(zhí)行當(dāng)前Step。
      1. 執(zhí)行單個(gè)Step (execute_step):
      • 為當(dāng)前Step實(shí)例化一個(gè)Manus智能體。
      • 關(guān)鍵Context注入:這里同時(shí)提供全部plan status能解決(一部分)有些步驟模型會(huì)發(fā)散把多個(gè)步驟一起做了導(dǎo)致重復(fù)或者沖突的問題。
        • 當(dāng)前任務(wù): "You are now working on step {index}: '{step_text}'"
        • 全局狀態(tài): "CURRENT PLAN STATUS: {plan_status}" (包含所有Steps的狀態(tài))
      step_prompt = f"""
      CURRENT PLAN STATUS:
      {plan_status}
      
      YOUR CURRENT TASK:
      You are now working on step {self.current_step_index}: "{step_text}"
      
      Please execute this step using the appropriate tools. When you're done, provide a summary of what you accomplished.
      """
      
      1. 所有Plan執(zhí)行完成進(jìn)入?yún)R總階段:會(huì)基于原始生成的所有Plan的執(zhí)行狀態(tài),讓模型給出一份匯總

      Flow的Context管理

      • 分層Context: 全局Plan狀態(tài) vs. 單個(gè)Step執(zhí)行Context。
      • 智能體隔離: 每個(gè)Step由獨(dú)立的Manus智能體執(zhí)行,其Context主要包含:Plan全局狀態(tài) + 當(dāng)前Step描述 + 當(dāng)前Step執(zhí)行歷史 (ReAct循環(huán))。
      • 狀態(tài)共享: Plan Status(所有Step狀態(tài))作為只讀Context傳遞給每個(gè)執(zhí)行Step的Manus智能體,有助于緩解步驟間沖突。
      • 信息傳遞: Step間不直接共享詳細(xì)推理/操作Context,僅通過Plan Status的宏觀狀態(tài)(完成/阻塞)和最終結(jié)果字符串進(jìn)行間接傳遞。

      Reference

      想看更全的大模型論文·微調(diào)預(yù)訓(xùn)練數(shù)據(jù)·開源框架·AIGC應(yīng)用 >> DecryPrompt

      posted @ 2025-07-10 07:40  風(fēng)雨中的小七  閱讀(631)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 特级欧美AAAAAAA免费观看| 韩国午夜福利片在线观看| 成人免费xxxxx在线观看| 一区二区国产高清视频在线| 99久久精品费精品国产一区二区| 国产精品成人综合色在线| 国产精品成人亚洲一区二区| 最新日韩精品视频在线| 在线视频中文字幕二区| 狠狠色婷婷久久综合频道日韩 | 亚洲精品一二三中文字幕| 久久久无码人妻精品无码| 九九九国产精品成人免费视频| 亚洲色大成成人网站久久| 东海县| 亚洲午夜精品久久久久久抢| 国产欧美另类久久久精品丝瓜| 亚洲精品成a人在线观看| 九九热在线免费视频观看| 性色av蜜臀av色欲av| 动漫AV纯肉无码AV电影网| 四虎永久免费很黄的视频| 国产精品普通话国语对白露脸 | 无码人妻丰满熟妇区96| 亚洲国产av区一区二| 亚洲色成人一区二区三区| 狠狠色噜噜狠狠狠狠777米奇| 国产人妻大战黑人第1集| 99久久国产综合精品女图图等你| 久久人人97超碰爱香蕉| 男女xx00上下抽搐动态图| 亚洲av中文久久精品国内| 亚洲美女高潮不断亚洲| 久久久久影院色老大2020| 国产不卡一区二区在线| 十八禁午夜福利免费网站| 国产精品一区二区三区激情| 麻豆国产va免费精品高清在线 | √天堂中文www官网在线| 国产成人精品aa毛片| 视频区 国产 图片区 小说区 |