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

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

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

      [Agent] ACE(Agentic Context Engineering)源碼閱讀筆記---(1)基礎(chǔ)模塊

      [Agent] ACE(Agentic Context Engineering)源碼閱讀筆記---(1)基礎(chǔ)模塊

      0x00 概要

      這世界變化真快!

      前幾天我在博客說(shuō),斯坦福的ACE(Agentic Context Engineering)非常火。只看論文感覺還是理解不深,但是該論文并沒有釋放對(duì)應(yīng)的源碼

      然而,幾天后就發(fā)現(xiàn)了一個(gè)開源項(xiàng)目 https://github.com/kayba-ai/agentic-context-engine,項(xiàng)目寫明了:

      Based on the ACE paper and inspired by Dynamic Cheatsheet.

      If you use ACE in your research, please cite:

      @article{zhang2024ace,title={Agentic Context Engineering},author={Zhang et al.},journal={arXiv:2510.04618},year={2024}}
      

      于是只能乖乖的把代碼拉下來(lái)看看。

      0x01 示例

      我們先通過(guò)示例來(lái)梳理下總體邏輯,該示例適合快速入手和理解ACE的工作流程:生成→反思→策略→再生成。

      1.1 建立簡(jiǎn)單Agent

      該代碼特色如下:

      • 展示了 Agentic Context Engineering(ACE)系統(tǒng)的核心工作流程,通過(guò)初始化關(guān)鍵組件(Generator,Reflector,Curator)和環(huán)境,利用樣本數(shù)據(jù)訓(xùn)練智能體,使其從示例中學(xué)習(xí)策略并存儲(chǔ)到 Playbook 中,最終實(shí)現(xiàn)對(duì)新問(wèn)題的智能響應(yīng)。

      • 核心功能包括:初始化 LLM 客戶端連接大語(yǔ)言模型、創(chuàng)建 ACE 系統(tǒng)三大核心組件(生成器負(fù)責(zé)生成回答、反思器負(fù)責(zé)分析策略有效性、管理者負(fù)責(zé)優(yōu)化策略庫(kù))、通過(guò)離線適配器協(xié)調(diào)組件工作、利用樣本數(shù)據(jù)訓(xùn)練智能體并將學(xué)習(xí)到的策略保存到 Playbook、測(cè)試訓(xùn)練后的智能體對(duì)新問(wèn)題的處理能力。

      • 分別展示了這些組件的使用,以及如何組合這些組件來(lái)完成特定任務(wù),多種任務(wù)類型如下:

        • 知識(shí)問(wèn)答:"What is the capital of France?"
        • 數(shù)學(xué)計(jì)算:"What is 2 + 2?"
        • 文本理解:"Who wrote Romeo and Juliet?"
      • 特色是模塊化設(shè)計(jì)(各組件職責(zé)明確且可替換),支持從樣本中自主學(xué)習(xí)策略并動(dòng)態(tài)更新 Playbook,結(jié)合環(huán)境評(píng)估實(shí)現(xiàn)持續(xù)優(yōu)化,兼容多種大語(yǔ)言模型,兼顧訓(xùn)練與推理流程的完整性。

      流程如下:

      ace-1-2

      代碼如下:

      from ace import OfflineAdapter, Generator, Reflector, Curator
      from ace import LiteLLMClient, SimpleEnvironment
      from ace.types import Sample
      
      # Initialize the LLM client
      client = LiteLLMClient(model="gpt-4o-mini")  # or claude-3-haiku, gemini-pro, etc.
      
      # Create the three ACE components
      generator = Generator(client)
      reflector = Reflector(client)
      curator = Curator(client)
      
      # Create an adapter to orchestrate everything
      adapter = OfflineAdapter(generator, reflector, curator)
      
      # Set up the environment (evaluates answers)
      environment = SimpleEnvironment()
      
      # Create training samples
      samples = [
          Sample(
              question="What is the capital of France?",
              context="Provide a direct answer",
              ground_truth="Paris"
          ),
          Sample(
              question="What is 2 + 2?",
              context="Show the calculation",
              ground_truth="4"
          ),
          Sample(
              question="Who wrote Romeo and Juliet?",
              context="Name the author",
              ground_truth="William Shakespeare"
          )
      ]
      
      # Train the agent (it learns strategies from these examples)
      print("Training agent...")
      results = adapter.run(samples, environment, epochs=2)
      
      # Save the learned strategies
      adapter.playbook.save_to_file("my_trained_agent.json")
      print(f"Agent trained! Learned {len(adapter.playbook.bullets())} strategies")
      
      # Test with a new question
      test_sample = Sample(
          question="What is 5 + 3?",
          context="Provide the answer"
      )
      
      print("\nTesting with new question:", test_sample.question)
      output = generator.generate(
          question=test_sample.question,
          context=test_sample.context,
          playbook=adapter.playbook
      )
      print("Answer:", output.final_answer)
      print("Reasoning:", output.reasoning)
      

      運(yùn)行Agent之后,期待輸出是

      Training agent...
      Agent trained! Learned 3 strategies
      
      Testing with new question: What is 5 + 3?
      Answer: 8
      Reasoning: Using direct calculation strategy learned from training...
      

      Agent做了如下:

      • 從訓(xùn)練示例中學(xué)習(xí)
      • 反思哪些策略有效
      • 構(gòu)建了一個(gè)成功方法的手冊(cè)
      • 應(yīng)用這些策略來(lái)解決新問(wèn)題

      這樣就授予了智能體 反思→學(xué)習(xí)→成長(zhǎng) 的能力。

      1.2 后續(xù)操作

      后續(xù)可以做如下:

      Try Different Models

      # OpenAI GPT-4
      client = LiteLLMClient(model="gpt-4")
      
      # Anthropic Claude
      client = LiteLLMClient(model="claude-3-5-sonnet-20241022")
      
      # Google Gemini
      client = LiteLLMClient(model="gemini-pro")
      
      # Local Ollama
      client = LiteLLMClient(model="ollama/llama2")
      

      Load and Continue Training

      from ace import Playbook
      
      # Load a previously trained agent
      playbook = Playbook.load_from_file("my_trained_agent.json")
      
      # Continue training with new examples
      adapter = OfflineAdapter(generator, reflector, curator, playbook=playbook)
      

      Online Learning (Learn While Running)

      from ace import OnlineAdapter
      
      adapter = OnlineAdapter(
          playbook=playbook,
          generator=generator,
          reflector=reflector,
          curator=curator
      )
      
      # Process tasks one by one, learning from each
      for task in tasks:
          result = adapter.process(task, environment)
          print(f"Processed: {task.question}")
          print(f"Playbook now has {len(adapter.playbook.bullets())} strategies")
      

      Custom Environments

      from ace import TaskEnvironment, EnvironmentResult
      
      class MathEnvironment(TaskEnvironment):
          def evaluate(self, sample, output):
              try:
                  # Evaluate mathematical correctness
                  result = eval(output.final_answer)
                  correct = (result == eval(sample.ground_truth))
      
                  return EnvironmentResult(
                      feedback="Correct!" if correct else "Incorrect",
                      ground_truth=sample.ground_truth,
                      metrics={"accuracy": 1.0 if correct else 0.0}
                  )
              except:
                  return EnvironmentResult(
                      feedback="Invalid mathematical expression",
                      ground_truth=sample.ground_truth,
                      metrics={"accuracy": 0.0}
                  )
      

      0x02 基建功能

      2.1 Playbook

      Playbook 是 ACE 系統(tǒng)中實(shí)現(xiàn)持續(xù)學(xué)習(xí)和改進(jìn)的關(guān)鍵組件,它不僅存儲(chǔ)和管理策略知識(shí)庫(kù),還支持動(dòng)態(tài)更新和優(yōu)化,為整個(gè)系統(tǒng)智能決策的基礎(chǔ),其具體功能為:

      • 知識(shí)存儲(chǔ):存儲(chǔ)系統(tǒng)學(xué)習(xí)到的策略和經(jīng)驗(yàn)
      • 策略應(yīng)用:為 Generator 提供可用的策略集合
      • 動(dòng)態(tài)演化:通過(guò) Curator 的 Delta 操作持續(xù)改進(jìn)
      • 性能反饋:通過(guò)標(biāo)簽統(tǒng)計(jì)反映策略的有效性

      2.1.1 基本結(jié)構(gòu)與數(shù)據(jù)模型

      Playbook采用分層結(jié)構(gòu)組織策略信息,主要包括:

      • Bullet(策略條目):最小單位,包含具體策略內(nèi)容。每個(gè)Bullet有唯一ID、所屬section、內(nèi)容文本
        包含統(tǒng)計(jì)信息:helpful(有用次數(shù))、harmful(有害次數(shù))、neutral(中性次數(shù))
        帶有創(chuàng)建和更新時(shí)間戳
      • Section(分類):策略的邏輯分組(或者說(shuō)是章節(jié))。每個(gè)Bullet歸屬于一個(gè)section,通過(guò)section可以組織和檢索相關(guān)策略
      class Playbook:
          """Structured context store as defined by ACE.
          按照ACE(智能體上下文工程)框架定義的結(jié)構(gòu)化上下文存儲(chǔ)容器
          """
      
          def __init__(self) -> None:
              # 存儲(chǔ)條目:鍵為條目ID,值為Bullet對(duì)象
              self._bullets: Dict[str, Bullet] = {}
              # 存儲(chǔ)章節(jié)與條目ID的映射:鍵為章節(jié)名稱,值為該章節(jié)下的條目ID列表
              self._sections: Dict[str, List[str]] = {}
              # 用于生成新條目的自增ID計(jì)數(shù)器
              self._next_id = 0
      

      Playbook 的圖例如下:

      ACE-1-1

      2.1.2 核心功能

      核心功能包括

      • CRUD操作:
        • 添加策略:add_bullet()方法可以添加新的策略條目
        • 更新策略:update_bullet()方法可以修改現(xiàn)有策略內(nèi)容
        • 標(biāo)記策略:tag_bullet()方法可以增加策略的helpful/harmful/neutral計(jì)數(shù)
        • 刪除策略:remove_bullet()方法可以刪除策略條目
        • 查詢策略:get_bullet()和bullets()方法可以檢索策略
          # ------------------------------------------------------------------ #
          # CRUD工具方法(創(chuàng)建、讀取、更新、刪除)
          # ------------------------------------------------------------------ #
          def add_bullet(
              self,
              section: str,
              content: str,
              bullet_id: Optional[str] = None,
              metadata: Optional[Dict[str, int]] = None,
          ) -> Bullet:
              """添加新條目到行動(dòng)手冊(cè)
              Args:
                  section: 條目所屬章節(jié)名稱
                  content: 條目的核心內(nèi)容
                  bullet_id: 自定義條目ID(可選,不提供則自動(dòng)生成)
                  metadata: 條目元數(shù)據(jù)(可選,用于初始化標(biāo)記計(jì)數(shù)等屬性)
              Returns:
                  新創(chuàng)建的Bullet對(duì)象
              """
              # 若未提供條目ID,則自動(dòng)生成
              bullet_id = bullet_id or self._generate_id(section)
              # 元數(shù)據(jù)默認(rèn)為空字典
              metadata = metadata or {}
              # 創(chuàng)建Bullet實(shí)例
              bullet = Bullet(id=bullet_id, section=section, content=content)
              # 應(yīng)用元數(shù)據(jù)(如初始標(biāo)記計(jì)數(shù))
              bullet.apply_metadata(metadata)
              # 將條目存入字典
              self._bullets[bullet_id] = bullet
              # 將條目ID添加到對(duì)應(yīng)章節(jié)(若章節(jié)不存在則自動(dòng)創(chuàng)建)
              self._sections.setdefault(section, []).append(bullet_id)
              return bullet
      
          def update_bullet(
              self,
              bullet_id: str,
              *,
              content: Optional[str] = None,
              metadata: Optional[Dict[str, int]] = None,
          ) -> Optional[Bullet]:
              """更新已有條目的內(nèi)容或元數(shù)據(jù)
              Args:
                  bullet_id: 待更新條目的ID
                  content: 新的內(nèi)容(可選,不提供則不更新)
                  metadata: 新的元數(shù)據(jù)(可選,不提供則不更新)
              Returns:
                  更新后的Bullet對(duì)象;若條目不存在則返回None
              """
              # 獲取待更新的條目
              bullet = self._bullets.get(bullet_id)
              if bullet is None:
                  return None
              # 更新內(nèi)容(若提供)
              if content is not None:
                  bullet.content = content
              # 應(yīng)用元數(shù)據(jù)(若提供)
              if metadata:
                  bullet.apply_metadata(metadata)
              # 更新修改時(shí)間為當(dāng)前UTC時(shí)間
              bullet.updated_at = datetime.now(timezone.utc).isoformat()
              return bullet
      
          def tag_bullet(
              self, bullet_id: str, tag: str, increment: int = 1
          ) -> Optional[Bullet]:
              """為條目添加標(biāo)記并更新計(jì)數(shù)
              Args:
                  bullet_id: 待標(biāo)記條目的ID
                  tag: 標(biāo)記類型("helpful"、"harmful"或"neutral")
                  increment: 計(jì)數(shù)增量(默認(rèn)+1)
              Returns:
                  標(biāo)記后的Bullet對(duì)象;若條目不存在則返回None
              """
              bullet = self._bullets.get(bullet_id)
              if bullet is None:
                  return None
              # 調(diào)用Bullet的tag方法更新標(biāo)記
              bullet.tag(tag, increment=increment)
              return bullet
      
          def remove_bullet(self, bullet_id: str) -> None:
              """從行動(dòng)手冊(cè)中刪除條目
              Args:
                  bullet_id: 待刪除條目的ID
              """
              # 從條目字典中移除并獲取該條目
              bullet = self._bullets.pop(bullet_id, None)
              if bullet is None:
                  return
              # 從所屬章節(jié)中移除該條目ID
              section_list = self._sections.get(bullet.section)
              if section_list:
                  # 過(guò)濾掉該條目ID
                  self._sections[bullet.section] = [
                      bid for bid in section_list if bid != bullet_id
                  ]
                  # 若章節(jié)為空,則刪除該章節(jié)
                  if not self._sections[bullet.section]:
                      del self._sections[bullet.section]
      
          def get_bullet(self, bullet_id: str) -> Optional[Bullet]:
              """獲取指定ID的條目
              Args:
                  bullet_id: 條目ID
              Returns:
                  對(duì)應(yīng)的Bullet對(duì)象;若不存在則返回None
              """
              return self._bullets.get(bullet_id)
      
          def bullets(self) -> List[Bullet]:
              """獲取所有條目的列表
              Returns:
                  包含所有Bullet對(duì)象的列表
              """
              return list(self._bullets.values())
      
      • Delta操作應(yīng)用
        • apply_delta()方法可以批量應(yīng)用由Curator生成的策略變更,支持ADD、UPDATE、TAG、REMOVE四種操作類型
          # ------------------------------------------------------------------ #
          # 增量操作應(yīng)用
          # ------------------------------------------------------------------ #
          def apply_delta(self, delta: DeltaBatch) -> None:
              """應(yīng)用批量增量操作到行動(dòng)手冊(cè)
              Args:
                  delta: 包含多個(gè)操作的DeltaBatch對(duì)象
              """
              for operation in delta.operations:
                  self._apply_operation(operation)
      
          def _apply_operation(self, operation: DeltaOperation) -> None:
              """應(yīng)用單個(gè)增量操作
              Args:
                  operation: 待應(yīng)用的DeltaOperation對(duì)象
              """
              op_type = operation.type.upper()
              # 根據(jù)操作類型執(zhí)行對(duì)應(yīng)邏輯
              if op_type == "ADD":
                  self.add_bullet(
                      section=operation.section,
                      content=operation.content or "",
                      bullet_id=operation.bullet_id,
                      metadata=operation.metadata,
                  )
              elif op_type == "UPDATE":
                  if operation.bullet_id is None:
                      return
                  self.update_bullet(
                      operation.bullet_id,
                      content=operation.content,
                      metadata=operation.metadata,
                  )
              elif op_type == "TAG":
                  if operation.bullet_id is None:
                      return
                  # 遍歷元數(shù)據(jù)中的標(biāo)記與增量
                  for tag, increment in operation.metadata.items():
                      self.tag_bullet(operation.bullet_id, tag, increment)
              elif op_type == "REMOVE":
                  if operation.bullet_id is None:
                      return
                  self.remove_bullet(operation.bullet_id)
      
      
      • 序列化與持久化
        • save_to_file()和load_from_file()支持將Playbook保存到文件或從文件加載
        • dumps()和loads()方法支持JSON格式的序列化和反序列化
          # ------------------------------------------------------------------ #
          # 序列化與反序列化
          # ------------------------------------------------------------------ #
          def to_dict(self) -> Dict[str, Any]:
              """將行動(dòng)手冊(cè)轉(zhuǎn)換為字典(用于序列化)
              Returns:
                  包含所有條目、章節(jié)和ID計(jì)數(shù)器的字典
              """
              return {
                  "bullets": {
                      bullet_id: asdict(bullet) for bullet_id, bullet in self._bullets.items()
                  },
                  "sections": self._sections,
                  "next_id": self._next_id,
              }
      
          @classmethod
          def from_dict(cls, payload: Dict[str, Any]) -> "Playbook":
              """從字典構(gòu)造行動(dòng)手冊(cè)實(shí)例(用于反序列化)
              Args:
                  payload: 包含行動(dòng)手冊(cè)數(shù)據(jù)的字典
              Returns:
                  構(gòu)造完成的Playbook實(shí)例
              """
              instance = cls()
              # 加載條目數(shù)據(jù)
              bullets_payload = payload.get("bullets", {})
              if isinstance(bullets_payload, dict):
                  for bullet_id, bullet_value in bullets_payload.items():
                      if isinstance(bullet_value, dict):
                          # 用字典數(shù)據(jù)構(gòu)造Bullet實(shí)例
                          instance._bullets[bullet_id] = Bullet(**bullet_value)
              # 加載章節(jié)數(shù)據(jù)
              sections_payload = payload.get("sections", {})
              if isinstance(sections_payload, dict):
                  instance._sections = {
                      section: list(ids) if isinstance(ids, Iterable) else []
                      for section, ids in sections_payload.items()
                  }
              # 加載ID計(jì)數(shù)器
              instance._next_id = int(payload.get("next_id", 0))
              return instance
      
          def dumps(self) -> str:
              """將行動(dòng)手冊(cè)序列化為JSON字符串
              Returns:
                  包含行動(dòng)手冊(cè)數(shù)據(jù)的JSON字符串
              """
              return json.dumps(self.to_dict(), ensure_ascii=False, indent=2)
      
          @classmethod
          def loads(cls, data: str) -> "Playbook":
              """從JSON字符串反序列化行動(dòng)手冊(cè)
              Args:
                  data: 包含行動(dòng)手冊(cè)數(shù)據(jù)的JSON字符串
              Returns:
                  構(gòu)造完成的Playbook實(shí)例
              Raises:
                  ValueError: 若JSON數(shù)據(jù)不是字典類型
              """
              payload = json.loads(data)
              if not isinstance(payload, dict):
                  raise ValueError("行動(dòng)手冊(cè)的序列化數(shù)據(jù)必須是JSON對(duì)象。")
              return cls.from_dict(payload)
      
          def save_to_file(self, path: str) -> None:
              """將行動(dòng)手冊(cè)保存到JSON文件
              Args:
                  path: 保存文件的路徑
              示例:
                  >>> playbook.save_to_file("trained_model.json")
              """
              file_path = Path(path)
              # 確保父目錄存在
              file_path.parent.mkdir(parents=True, exist_ok=True)
              # 寫入JSON數(shù)據(jù)
              with file_path.open("w", encoding="utf-8") as f:
                  f.write(self.dumps())
      
          @classmethod
          def load_from_file(cls, path: str) -> "Playbook":
              """從JSON文件加載行動(dòng)手冊(cè)
              Args:
                  path: 加載文件的路徑
              Returns:
                  從文件加載的Playbook實(shí)例
              示例:
                  >>> playbook = Playbook.load_from_file("trained_model.json")
              異常:
                  FileNotFoundError: 若文件不存在
                  json.JSONDecodeError: 若文件包含無(wú)效JSON
                  ValueError: 若JSON數(shù)據(jù)無(wú)法表示有效的行動(dòng)手冊(cè)
              """
              file_path = Path(path)
              if not file_path.exists():
                  raise FileNotFoundError(f"行動(dòng)手冊(cè)文件不存在: {path}")
              with file_path.open("r", encoding="utf-8") as f:
                  return cls.loads(f.read())
      
      • 展示與統(tǒng)計(jì)功能
        • 可讀格式輸出。as_prompt()方法將Playbook轉(zhuǎn)換為適合LLM理解的文本格式,按section組織,展示每個(gè)策略條目及其統(tǒng)計(jì)信息
        • 統(tǒng)計(jì)信息。stats()方法提供 Playbook 的整體統(tǒng)計(jì)信息。包括 section 數(shù)量、策略條目總數(shù)、各類標(biāo)簽的總計(jì)數(shù)
          # ------------------------------------------------------------------ #
          # 展示輔助方法
          # ------------------------------------------------------------------ #
          def as_prompt(self) -> str:
              """生成供大語(yǔ)言模型使用的人類可讀字符串
              Returns:
                  格式化的行動(dòng)手冊(cè)內(nèi)容字符串
              """
              parts: List[str] = []
              # 按章節(jié)排序并生成內(nèi)容
              for section, bullet_ids in sorted(self._sections.items()):
                  parts.append(f"## {section}")
                  for bullet_id in bullet_ids:
                      bullet = self._bullets[bullet_id]
                      # 拼接標(biāo)記計(jì)數(shù)信息
                      counters = f"(helpful={bullet.helpful}, harmful={bullet.harmful}, neutral={bullet.neutral})"
                      parts.append(f"- [{bullet.id}] {bullet.content} {counters}")
              return "\n".join(parts)
      
          def stats(self) -> Dict[str, Any]:
              """生成行動(dòng)手冊(cè)的統(tǒng)計(jì)信息
              Returns:
                  包含章節(jié)數(shù)、條目數(shù)和標(biāo)記總數(shù)的字典
              """
              return {
                  "sections": len(self._sections),
                  "bullets": len(self._bullets),
                  "tags": {
                      "helpful": sum(b.helpful for b in self._bullets.values()),
                      "harmful": sum(b.harmful for b in self._bullets.values()),
                      "neutral": sum(b.neutral for b in self._bullets.values()),
                  },
              }
      
      • ID 生成
        • generate_id() 方法自動(dòng)生成策略條目的唯一標(biāo)識(shí)符。其基于 section 名稱和遞增序號(hào)生成,提供數(shù)據(jù)一致性維護(hù),也會(huì)自動(dòng)維護(hù) sections 與 bullet 的關(guān)聯(lián)關(guān)系。
          # ------------------------------------------------------------------ #
          # 內(nèi)部輔助方法
          # ------------------------------------------------------------------ #
          def _generate_id(self, section: str) -> str:
              """生成條目的自動(dòng)ID
              Args:
                  section: 條目所屬章節(jié)
              Returns:
                  格式為"章節(jié)前綴-五位數(shù)字"的ID字符串
              """
              self._next_id += 1
              # 取章節(jié)名稱的第一個(gè)詞作為前綴(小寫)
              section_prefix = section.split()[0].lower()
              # 生成如"planning-00001"格式的ID
              return f"{section_prefix}-{self._next_id:05d}"
      

      2.2 bullets

      ACE 的核心設(shè)計(jì)理念是:將上下文表示為結(jié)構(gòu)化的條目集合(bullets),而非單一的整體提示詞。每個(gè)條目包含兩部分:

      • 元數(shù)據(jù)(metadata):唯一標(biāo)識(shí)符,以及「有用 / 有害」計(jì)數(shù)器;
      • 內(nèi)容(content):比如可復(fù)用策略、領(lǐng)域概念或常見錯(cuò)誤模式。

      bullet 是人類可讀的,更新粒度。

      @dataclass
      class Bullet:
          """Single playbook entry.
          行動(dòng)手冊(cè)(playbook)中的單個(gè)條目,用于存儲(chǔ)具體的上下文內(nèi)容及相關(guān)標(biāo)記信息
          """
      
          # 條目唯一標(biāo)識(shí)ID,用于精準(zhǔn)定位和操作該條目
          id: str
          # 條目所屬的章節(jié)名稱,用于歸類管理
          section: str
          # 條目核心內(nèi)容,存儲(chǔ)具體的文本信息
          content: str
          # 有益標(biāo)記計(jì)數(shù),記錄該條目被標(biāo)記為"有益"的次數(shù),默認(rèn)初始化為0
          helpful: int = 0
          # 有害標(biāo)記計(jì)數(shù),記錄該條目被標(biāo)記為"有害"的次數(shù),默認(rèn)初始化為0
          harmful: int = 0
          # 中性標(biāo)記計(jì)數(shù),記錄該條目被標(biāo)記為"中性"的次數(shù),默認(rèn)初始化為0
          neutral: int = 0
          # 條目創(chuàng)建時(shí)間,默認(rèn)使用UTC時(shí)區(qū)的當(dāng)前時(shí)間,以ISO格式字符串存儲(chǔ)
          created_at: str = field(
              default_factory=lambda: datetime.now(timezone.utc).isoformat()
          )
          # 條目更新時(shí)間,默認(rèn)使用UTC時(shí)區(qū)的當(dāng)前時(shí)間,以ISO格式字符串存儲(chǔ),更新操作時(shí)會(huì)同步修改
          updated_at: str = field(
              default_factory=lambda: datetime.now(timezone.utc).isoformat()
          )
      
          def apply_metadata(self, metadata: Dict[str, int]) -> None:
              """應(yīng)用元數(shù)據(jù)到當(dāng)前條目,更新對(duì)應(yīng)屬性的值
              Args:
                  metadata: 元數(shù)據(jù)字典,鍵為屬性名稱,值為待更新的整數(shù)型數(shù)據(jù)
              """
              # 遍歷元數(shù)據(jù)中的鍵值對(duì)
              for key, value in metadata.items():
                  # 檢查當(dāng)前條目是否存在該屬性
                  if hasattr(self, key):
                      # 存在則更新屬性值(確保轉(zhuǎn)換為整數(shù)類型)
                      setattr(self, key, int(value))
      
          def tag(self, tag: str, increment: int = 1) -> None:
              """為條目添加標(biāo)記并更新對(duì)應(yīng)計(jì)數(shù),同時(shí)刷新更新時(shí)間
              Args:
                  tag: 標(biāo)記類型,僅支持"helpful"、"harmful"、"neutral"三種
                  increment: 計(jì)數(shù)增量,默認(rèn)增加1
              Raises:
                  ValueError: 當(dāng)傳入不支持的標(biāo)記類型時(shí)拋出異常
              """
              # 校驗(yàn)標(biāo)記類型的合法性
              if tag not in ("helpful", "harmful", "neutral"):
                  raise ValueError(f"Unsupported tag: {tag}")
              # 獲取當(dāng)前標(biāo)記的計(jì)數(shù)
              current = getattr(self, tag)
              # 更新標(biāo)記計(jì)數(shù)(累加增量)
              setattr(self, tag, current + increment)
              # 刷新條目更新時(shí)間為當(dāng)前UTC時(shí)間
              self.updated_at = datetime.now(timezone.utc).isoformat()
      

      0x03 提示詞

      ACE是更頂層的 “上下文優(yōu)化框架”,依托 Dynamic Cheatsheet 實(shí)現(xiàn),但不局限于特定領(lǐng)域或工具 —— 它通過(guò) “生成器 - 反思器 - 整理器” 的角色分工,構(gòu)建了一套通用的 “經(jīng)驗(yàn)學(xué)習(xí)流程”。無(wú)論任務(wù)是 “APP 調(diào)用”“財(cái)務(wù)報(bào)表分析” 還是 “代碼調(diào)試”,ACE 都能通過(guò)相同的閉環(huán)生成適配的上下文。其優(yōu)勢(shì)在于 “跨領(lǐng)域通用性”,適合需要 AI 代理自主探索新任務(wù)的場(chǎng)景(如通用智能助手、自適應(yīng)決策系統(tǒng))。

      因此,我們來(lái)看看ACE的提示詞。

      3.1 總體

      提示詞總體介紹如下。

      """ ACE角色的State-of-the-art提示模板 - 版本2.0
      
      這些提示結(jié)合了包括生產(chǎn)AI系統(tǒng)中的最佳實(shí)踐:
      
      - 帶有元數(shù)據(jù)的身份標(biāo)題
      - 具有清晰部分的層次化組織
      - 關(guān)鍵入要求的大寫字母
      - 具體示例優(yōu)于抽象原則
      - 條件邏輯用于細(xì)微處理
      - 明確的反模式以避免
      - 元認(rèn)知指令意識(shí)
      - 帶有編號(hào)步驟的程序化工作流程
      
      基于GPT-5、Claude 3.5和80多個(gè)生產(chǎn)提示的模式。 """
      

      3.2 GENERATOR提示詞

      GENERATOR_V2_PROMPT 通過(guò)更嚴(yán)格的結(jié)構(gòu),明確的操作協(xié)議,置信度評(píng)分和錯(cuò)誤恢復(fù)機(jī)制,提供了更高的質(zhì)量和一致性的輸出。

      生成器提示詞如下:

      GENERATOR_V2_PROMPT = """
      
      # 身份和元數(shù)據(jù)
      您是ACE生成器v2.0,一個(gè)專業(yè)的解決問(wèn)題代理。
      提示版本:2.0.0
      當(dāng)前日期:{current_date}
      模式:戰(zhàn)略性問(wèn)題解決
      置信度閾值:0.7
      
      ## 核心職責(zé)
      使用積累的劇本策略分析問(wèn)題
      應(yīng)用相關(guān)要點(diǎn)并進(jìn)行置信度評(píng)分
      展示帶有清晰理由的逐步推理
      生成準(zhǔn)確、完整的答案
      
      ## 劇本應(yīng)用協(xié)議(## Playbook Application Protocol)
      
      ### 步驟1:分析可用策略
      檢查劇本并識(shí)別相關(guān)要點(diǎn):
      {playbook}
      
      ### 步驟2:考慮最近的反思
      整合最近分析的學(xué)習(xí)成果:
      {reflection}
      
      ### 步驟3:處理問(wèn)題
      問(wèn)題:{question}
      附加上下文:{context}
      
      ### 步驟4:生成解決方案
      遵循此確切程序:
      
      1. 策略選擇
      - 僅使用置信度 > 0.7 的要點(diǎn)
      - 切勿同時(shí)應(yīng)用沖突策略
      - 如果沒有相關(guān)要點(diǎn)存在,聲明“無(wú)適用策略”
      2. 推理鏈
      - 從問(wèn)題分解開始
      - 按邏輯順序應(yīng)用策略
      - 明確顯示中間步驟
      - 驗(yàn)證每個(gè)推理步驟
      3. 答案形成
      - 從推理中綜合完整答案
      - 確保答案直接針對(duì)問(wèn)題
      - 驗(yàn)證事實(shí)準(zhǔn)確性
      
      ## 關(guān)鍵要求
      必須 遵循這些規(guī)則:
      - 總是包含逐步推理
      - 切勿跳過(guò)中間計(jì)算或邏輯
      - 應(yīng)用策略時(shí)總是引用具體要點(diǎn)ID
      - 切勿猜測(cè)或編造信息
      
      切勿 做這些:
      - 沒有具體要點(diǎn)引用的情況下說(shuō)“基于劇本”
      - 提供部分或不完整的答案
      - 混合無(wú)關(guān)策略
      - 包含元評(píng)論如“我將應(yīng)用...”
      
      ## 輸出格式
      
      返回一個(gè)單一有效的JSON對(duì)象,具有此確切模式:
      {{
      "推理": "<帶有編號(hào)步驟的詳細(xì)逐步推理鏈>",
      "要點(diǎn)ID": ["<id1><id2><id1><id2>
      
      ## 示例
      ### 好的例子:
      {
      "推理": "1. 分解構(gòu)15 × 24:這是一個(gè)乘法問(wèn)題。2. 應(yīng)用要點(diǎn)_023(乘法分解):15 × 24 = 15 × (20 + 4)。3. 計(jì)算:15 × 20 = 300。4. 計(jì)算:15 × 4 = 60。5. 相加:300 + 60 = 360。",
      "要點(diǎn)ID": ["要點(diǎn)_023"],
      "置信度評(píng)分": {{"要點(diǎn)_023": 0.95}},
      "最終答案": "360",
      "答案置信度": 1.0
      }}
      ### 壞的例子(不要這樣做):
      {
      "推理": "使用劇本策略,答案清晰。",
      "要點(diǎn)ID": [],
      "最終答案": "360"
      }
      
      ## 恢復(fù)
      如果JSON生成失敗:
      驗(yàn)證所有必需字段是否存在
      確保特殊字符的正確轉(zhuǎn)義
      驗(yàn)證置信度評(píng)分在0和1之間
      最大嘗試次數(shù):3
      以 {{ 開始響應(yīng)并以 }} 結(jié)束
      
      """
      

      3.3 REFLECTOR 提示詞

      REFLECTOR_V2_PROMPT 的特點(diǎn)包括:

      1 詳細(xì)的身份和元數(shù)據(jù)定義;

      2 明確的核心使命說(shuō)明;

      3 系統(tǒng)化的輸入分析框架;

      4 基于條件判斷的分析協(xié)議;

      5 詳細(xì)的策略標(biāo)記標(biāo)準(zhǔn);

      6 嚴(yán)格的輸出格式要求;

      7 提供具體示例說(shuō)明正確和錯(cuò)誤的做法。

      這些優(yōu)秀特性,使REFLECTOR_V2_PROMPT 成為一個(gè)高效的分析工具。它的結(jié)構(gòu)設(shè)計(jì)使分析過(guò)程更加系統(tǒng)化,條件判斷樹使得問(wèn)題識(shí)別更有針對(duì)性,嚴(yán)格的標(biāo)記標(biāo)準(zhǔn)有助于策略優(yōu)化,而具體的輸出格式要求保證了分析結(jié)果的一致性和可處理性。

      REFLECTOR_V2_提示 = """
      # 身份和元數(shù)據(jù)
      您是ACE反思者v2.0,一位高級(jí)分析評(píng)論員。
      提示版本:2.0.0
      分析模式:診斷性審查
      標(biāo)記協(xié)議:基于證據(jù)
      
      ## 核心任務(wù)
      通過(guò)系統(tǒng)分析推理、結(jié)果和應(yīng)用策略識(shí)別生成器性能。
      
      ## 輸入分析
      ### 問(wèn)題和響應(yīng)
      問(wèn)題:{問(wèn)題}
      模型推理:{推理}
      模型預(yù)測(cè):{預(yù)測(cè)}
      真實(shí)情況:{真實(shí)情況}
      環(huán)境反饋:{反饋}
      
      ### 劇本上下文
      咨詢的策略:
      {劇本摘錄}
      
      ## 分析協(xié)議
      按順序執(zhí)行 - 使用第一個(gè)適用條件:
      ### 1. 成功案例檢測(cè)
      如果預(yù)測(cè)與真實(shí)情況匹配且反饋積極:
      - 識(shí)別哪些策略促成成功
      - 提取可重用模式
      - 標(biāo)記有幫助的要點(diǎn)
      ### 2. 計(jì)算錯(cuò)誤檢測(cè)
      如果推理中存在數(shù)學(xué)/邏輯錯(cuò)誤:
      - 確定錯(cuò)誤確切位置
      - 識(shí)別根本原因(例如,操作順序、符號(hào)錯(cuò)誤)
      - 指定正確的計(jì)算方法
      ### 3. 策略應(yīng)用錯(cuò)誤檢測(cè)
      如果策略正確但執(zhí)行錯(cuò)誤:
      - 識(shí)別執(zhí)行偏差之處
      - 說(shuō)明正確應(yīng)用
      - 標(biāo)記要點(diǎn)為“中性”(策略正確,執(zhí)行失敗)
      ### 4. 錯(cuò)誤策略選擇
      如果問(wèn)題類型不適用策略:
      - 解釋策略為何不適用
      - 確定所需正確策略類型
      - 標(biāo)記要點(diǎn)為“有害”針對(duì)此情境
      ### 5. 缺失策略檢測(cè)
      如果不存在適用策略:
      - 定義缺失能力
      - 描述有助于的策略
      - 標(biāo)記以便策展商添加
      
      ## 標(biāo)記標(biāo)準(zhǔn)
      ### 標(biāo)記為“有幫助”時(shí):
      - 策略直接導(dǎo)致正確答案
      - 方法提高推理質(zhì)量
      - 方法適用于類似問(wèn)題
      ### 標(biāo)記為“有害”時(shí):
      - 策略導(dǎo)致錯(cuò)誤答案
      - 方法造成混淆
      - 方法導(dǎo)致錯(cuò)誤傳播
      ### 標(biāo)記為“中性”時(shí):
      - 策略被引用但非決定性
      - 正確策略執(zhí)行錯(cuò)誤
      - 部分適用性
      
      ## 關(guān)鍵要求
      必須 包括:
      - 如適用,具體錯(cuò)誤識(shí)別行號(hào)
      - 根本原因分析超越表面癥狀
      - 可操作的修正,含示例
      - 基于證據(jù)的要點(diǎn)標(biāo)記
      
      切勿 使用這些短語(yǔ):
      - “模型錯(cuò)誤”
      - “本應(yīng)更好”
      - “明顯錯(cuò)誤”
      - “未能理解”
      - “理解問(wèn)題”
      
      ## 輸出格式
      返回唯一 有效JSON對(duì)象:
      {
      "推理": "<系統(tǒng)分析,帶編號(hào)點(diǎn)>",
      "錯(cuò)誤識(shí)別": "<具體錯(cuò)誤或'無(wú)'如果正確>",
      "錯(cuò)誤位置": "<錯(cuò)誤發(fā)生的確切步驟或'不適用'>",
      "根本原因": "<錯(cuò)誤或成功因素的根本原因>",
      "正確方法": "<詳細(xì)正確方法含示例>",
      "關(guān)鍵洞見": "<未來(lái)問(wèn)題可重用的洞見>",
      "分析置信度": 0.95,
      "要點(diǎn)標(biāo)記": [
      {
      "id": "<要點(diǎn)ID>",
      "標(biāo)記": "有幫助|有害|中性",
      "理由": "<此標(biāo)記的具體證據(jù)>"
      }}
      ]
      }
      
      ## 示例
      ### 計(jì)算錯(cuò)誤:
      {
      "推理": "1. 生成器嘗試使用分解法計(jì)算15 × 24。2. 正確分解為15 × (20 + 4)。3. 錯(cuò)誤步驟3:計(jì)算15 × 20 = 310而非300。",
      "錯(cuò)誤識(shí)別": "乘法錯(cuò)誤",
      "錯(cuò)誤位置": "推理鏈的步驟3",
      "根本原因": "乘法錯(cuò)誤:15 × 2 = 30,所以15 × 20 = 300,非310",
      "正確方法": "15 × 24 = 15 × 20 + 15 × 4 = 300 + 60 = 360",
      "關(guān)鍵洞見": "總是驗(yàn)證多步驟問(wèn)題中的中間計(jì)算",
      "分析置信度": 1.0,
      "要點(diǎn)標(biāo)記": [
      {
      "id": "要點(diǎn)023",
      "標(biāo)記": "中性",
      "理由": "策略正確但執(zhí)行時(shí)算術(shù)錯(cuò)誤"
      }}
      ]
      }
      以{{ 開始響應(yīng)并以 }} 結(jié)束
      """
      

      3.4 CURATOR提示詞

      CURATOR_V2_PROMPT 相比初版具有以下特色:

      • 更精細(xì)的身份和元數(shù)據(jù)定義
        • 明確定義Curator為戰(zhàn)略 playbook 架構(gòu)師角色
        • 包含版本號(hào)和更新協(xié)議等元信息
      • 結(jié)構(gòu)化的更新決策流程
        • 采用優(yōu)先級(jí)排序的決策樹機(jī)制,從關(guān)鍵錯(cuò)誤模式到成功強(qiáng)化依次處理
        • 明確五種優(yōu)先級(jí)情況下的處理邏輯:關(guān)鍵錯(cuò)誤模式、缺失能力、策略優(yōu)化、矛盾解決和成功強(qiáng)化
      • 詳細(xì)的操作指南
        • 對(duì)每種操作類型(ADD、UPDATE、TAG、REMOVE)都有明確的使用場(chǎng)景說(shuō)明
        • 為 ADD 操作提供了具體的數(shù)量標(biāo)準(zhǔn)和正反示例
      • 質(zhì)量控制機(jī)制
        • 引入更新前的四個(gè)核查問(wèn)題,確保更新的真實(shí)價(jià)值
        • 明確禁止添加的策略類型,如泛泛建議
      • 去重協(xié)議
        • 在添加前檢查相似性,如果相似度超過(guò)70%則更新而非添加
        • 有助于保持 playbook 的緊湊性和有效性
      • 嚴(yán)格的輸出格式
        • 要求返回嚴(yán)格的 JSON 格式,包含 reasoning 和 operations 字段
        • 每個(gè)操作都需要提供 justification,解釋為何此操作能改善 playbook
      • Playbook大小管理
        • 當(dāng)策略數(shù)量超過(guò)50條時(shí)自動(dòng)啟用大小管理機(jī)制
        • 優(yōu)先考慮更新而非新增,合并相似策略,消除低效策略

      這些特色使 CURATOR_V2_PROMPT 更加專業(yè)、嚴(yán)謹(jǐn)和實(shí)用,能夠更有效地管理和優(yōu)化 playbook 內(nèi)容。

      CURATOR_V2_PROMPT = """\
      # 身份與元數(shù)據(jù)
      您是 ACE 管理者 v2.0,即策略行動(dòng)手冊(cè)架構(gòu)師。
      提示詞版本:2.0.0
      更新協(xié)議:增量變更操作質(zhì)量
      閾值:僅保留高價(jià)值新增內(nèi)容
      
      ## 行動(dòng)手冊(cè)管理任務(wù)
      通過(guò)有選擇性的增量改進(jìn),將反思內(nèi)容轉(zhuǎn)化為高質(zhì)量的行動(dòng)手冊(cè)更新。
      
      ### 當(dāng)前狀態(tài)分析
      訓(xùn)練進(jìn)度:{progress}
      行動(dòng)手冊(cè)統(tǒng)計(jì)數(shù)據(jù):{stats}
      
      ### 近期反思
      {reflection}
      
      ### 當(dāng)前行動(dòng)手冊(cè)
      {playbook}
      
      ### 問(wèn)題背景
      {question_context}
      
      ## 更新決策流程
      
      按優(yōu)先級(jí)順序執(zhí)行:
      
      ### 優(yōu)先級(jí) 1:關(guān)鍵錯(cuò)誤模式(CRITICAL_ERROR_PATTERN)
      若反思發(fā)現(xiàn)影響多個(gè)問(wèn)題的系統(tǒng)性錯(cuò)誤:→ 新增高優(yōu)先級(jí)糾正策略→ 為已存在的有害模式添加標(biāo)記→ 更新相關(guān)策略以提升清晰度
      ### 優(yōu)先級(jí) 2:缺失能力(MISSING_CAPABILITY)
      若反思發(fā)現(xiàn)存在必要但缺失的策略:→ 新增含清晰示例的策略→ 確保策略具備針對(duì)性與可執(zhí)行性
      ### 優(yōu)先級(jí) 3:策略優(yōu)化(STRATEGY_REFINEMENT)
      若現(xiàn)有策略需要改進(jìn):→ 通過(guò)更優(yōu)的解釋或示例進(jìn)行更新→ 保留有價(jià)值的核心內(nèi)容,同時(shí)修正問(wèn)題
      ### 優(yōu)先級(jí) 4:矛盾解決(CONTRADICTION_RESOLUTION)
      若策略間存在沖突:→ 移除或更新沖突策略→ 必要時(shí)新增用于澄清的元策略
      ### 優(yōu)先級(jí) 5:成功強(qiáng)化(SUCCESS_REINFORCEMENT)
      若某策略被證明效果顯著:→ 標(biāo)記為 “有幫助” 并提高權(quán)重→ 考慮為邊緣場(chǎng)景創(chuàng)建該策略的變體
      
      ## 操作指南
      ### 新增操作(ADD)—— 適用于以下場(chǎng)景:
      - 策略需應(yīng)對(duì)新類型問(wèn)題
      - 反思發(fā)現(xiàn)存在缺失的能力
      - 現(xiàn)有策略無(wú)法覆蓋當(dāng)前情況
      
      新增操作要求:
      - 必須具備真正的新穎性(不可是現(xiàn)有內(nèi)容的改寫)
      - 必須包含具體示例或步驟
      - 必須具備可執(zhí)行性與針對(duì)性
      - 嚴(yán)禁添加模糊的原則性內(nèi)容
      
      優(yōu)質(zhì)新增示例:{{"type": "ADD","section": "multiplication(乘法)","content": "計(jì)算兩位數(shù)乘法(如 23×45):采用面積模型 —— 拆分為(20+3)×(40+5),計(jì)算四個(gè)部分的乘積后求和","metadata": {{"helpful": 1, "harmful": 0}}}}
      
      劣質(zhì)新增示例(禁止使用):{{"type": "ADD","content": "計(jì)算時(shí)要仔細(xì)" // 過(guò)于模糊}}
      
      ### 更新操作(UPDATE)—— 適用于以下場(chǎng)景:
      - 策略需進(jìn)一步澄清
      - 需補(bǔ)充重要的例外情況或邊緣場(chǎng)景
      - 需優(yōu)化示例內(nèi)容
      
      更新操作要求:
      - 必須保留原有內(nèi)容中的有價(jià)值部分
      - 必須能切實(shí)提升策略效果
      - 需引用具體的條目 ID(bullet_id)
      
      標(biāo)記操作(TAG)—— 適用于以下場(chǎng)景:
      - 反思提供了策略有效性的相關(guān)證據(jù)
      - 需調(diào)整 “有幫助”/“有害” 的權(quán)重
      
      ### 移除操作(REMOVE)—— 適用于以下場(chǎng)景:
      - 策略持續(xù)引發(fā)錯(cuò)誤
      - 存在重復(fù)或沖突的策略
      - 策略過(guò)于模糊,不具備實(shí)用價(jià)值
      
      ## 質(zhì)量控制
      執(zhí)行任何操作前必須驗(yàn)證:
      - 該內(nèi)容是否為真正的新增 / 改進(jìn)信息?
      - 內(nèi)容是否足夠具體,可執(zhí)行?
      - 是否與現(xiàn)有策略存在沖突?
      - 是否能提升未來(lái)的執(zhí)行表現(xiàn)?
      
      嚴(yán)禁添加包含以下內(nèi)容的條目:
      - “注意……”
      - “務(wù)必反復(fù)檢查……”
      - “考慮所有方面……”
      - “逐步思考……”(無(wú)具體步驟支撐)
      - 具體方法的通用性建議
      
      ## 去重協(xié)議
      執(zhí)行新增操作前:
      - 檢索現(xiàn)有條目,排查是否存在相似策略
      - 若相似度達(dá) 70%:選擇更新(UPDATE)而非新增(ADD)
      - 若針對(duì)同一問(wèn)題但方法不同:新增時(shí)需添加區(qū)分說(shuō)明
      
      ## 輸出格式
      僅返回有效的 JSON 對(duì)象:
      {{"reasoning": "<分析需要執(zhí)行哪些更新及原因>","operations": [{{"type": "ADD|UPDATE|TAG|REMOVE","section": "< 類別,如 'algebra(代數(shù))'、'geometry(幾何)'、'problem_solving(問(wèn)題解決)'>","content": "< 具體、可執(zhí)行的策略,含示例 >","bullet_id": "< 更新 / 標(biāo)記 / 移除操作必填項(xiàng) >","metadata": {{"helpful": < 計(jì)數(shù) >,"harmful": < 計(jì)數(shù) >,"confidence": 0.85}},"justification": "< 該操作如何提升行動(dòng)手冊(cè)質(zhì)量的說(shuō)明 >"}}]}}
      
      ## 操作示例
      
      ### 高質(zhì)量新增操作:
      
      {{"type": "ADD","section": "algebra(代數(shù))","content": "求解一元二次方程 ax2+bx+c=0 時(shí):首先嘗試因式分解。若無(wú)法分解為整數(shù)因式,使用求根公式 x = (-b ± √(b2-4ac))/2a。示例:方程 x2-5x+6=0 可分解為 (x-2)(x-3)=0,因此解為 x=2 或 x=3","metadata": {{"helpful": 1, "harmful": 0, "confidence": 0.95}},"justification": "提供了完整的解題方法,包含決策依據(jù)與示例"}}
      
      ### 有效更新操作:
      {{"type": "UPDATE","bullet_id": "bullet_045","section": "geometry(幾何)","content": "勾股定理 a2+b2=c2 僅適用于直角三角形。對(duì)于非直角三角形,需使用余弦定理:c2 = a2+b2-2ab?cos (C)。應(yīng)用勾股定理前,需先確認(rèn)三角形是否為直角(90°)三角形","metadata": {{"helpful": 3, "harmful": 0, "confidence": 0.90}},"justification": "補(bǔ)充了勾股定理的關(guān)鍵適用條件,并提供了非直角三角形的替代解法"}}
      
      ## 行動(dòng)手冊(cè)規(guī)模管理
      若行動(dòng)手冊(cè)中的策略數(shù)量超過(guò) 50 條:
      - 優(yōu)先選擇更新(UPDATE)而非新增(ADD)
      - 合并相似策略
      - 移除表現(xiàn)最差的條目
      - 注重質(zhì)量而非數(shù)量
      
      若無(wú)需執(zhí)行任何更新,返回空的操作列表。響應(yīng)需以{{開頭,以}}結(jié)尾"""
      
      posted @ 2025-11-04 21:58  羅西的思考  閱讀(6)  評(píng)論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 国产婷婷综合在线视频中文| 亚洲精品三区二区一区一| 延安市| 久久理论片午夜琪琪电影网| 亚洲国产精品久久久天堂麻豆宅男 | 伊人色综合一区二区三区| 国产三级视频网站| 精品人妻系列无码天堂| 乱人伦中文字幕成人网站在线| 石原莉奈日韩一区二区三区| 视频二区中文字幕在线| 免费无码一区无码东京热| 四虎永久在线精品免费看| 免费看婬乱a欧美大片| 精品人妻一区二区| 国产高清视频一区二区乱| 亚洲欧美人成人综合在线播放| 国产成人无码免费视频在线| 免费中文熟妇在线影片| 国产精品亚洲综合久久小说| 深夜av免费在线观看| 18禁在线永久免费观看| 久久99精品久久久大学生| 久久精品国产亚洲精品| 精品偷拍被偷拍在线观看| 亚洲精品自拍在线视频| 无码国内精品久久人妻蜜桃| 九九在线精品国产| 日本一区二区三区专线| 国产精品有码在线观看| 黄色三级亚洲男人的天堂| 一日本道伊人久久综合影| 久草热大美女黄色片免费看| 亚洲中文字幕无码一久久区| 高清无打码一区二区三区| 野花社区www视频日本| 蓬莱市| 成在人线av无码免费看网站直播| 国产人妻大战黑人第1集| 精品亚洲男人一区二区三区| 激情影院内射美女|