智能体设计模式-CH21:探索与发现(Exploration and Discovery)

55 阅读19分钟

英文原地址:Chapter 21: Exploration and Discovery

本章探讨了一类模式,使智能体能够主动寻找新信息、发掘新可能,并在其运行环境中识别未知的未知。探索与发现不同于在预定义解空间内的反应式行为或优化;它们强调的是智能体主动进入陌生领域、尝试新方法,并生成新知识或新理解。这一模式对在开放式、复杂或快速演化领域中运行的智能体至关重要,在这些领域中,静态知识或预编程方案并不充分。它强调智能体扩展自身理解与能力的能力。

实际应用与使用场景

智能体具备智能优先级评估与探索的能力,从而在各个领域产生应用。通过自主评估并排序潜在行动,这些智能体可以在复杂环境中导航、发掘潜在洞见并推动创新。这种按优先级进行探索的能力使其能够优化流程、发现新知识并生成内容。

示例:

  • 科学研究自动化: 智能体设计并运行实验、分析结果并提出新假设,以发现新材料、候选药物或科学原理。
  • 游戏博弈与策略生成: 智能体探索博弈状态,发现涌现策略或识别博弈环境中的脆弱点(例如 AlphaGo)。
  • 市场研究与趋势发现: 智能体扫描非结构化数据(社交媒体、新闻、报告)以识别趋势、消费者行为或市场机会。
  • 安全漏洞发现: 智能体探测系统或代码库以发现安全缺陷或攻击向量。
  • 创意内容生成: 智能体探索风格、主题或数据的组合,以生成艺术作品、音乐作品或文学作品。
  • 个性化教育与培训: AI 导师依据学生的进度、学习风格与待提升领域来优先安排学习路径与内容投递。

Google Co-Scientist

由 Google Research 开发的 AI 联合科学家是一种被设计为计算型科研合作者的 AI 系统。它在假设生成、方案打磨和实验设计等研究环节协助人类科学家。该系统运行在 Gemini LLM 上。

AI 联合科学家的开发旨在应对科学研究中的挑战,包括处理海量信息、生成可检验的假设以及管理实验规划。AI 联合科学家通过执行大规模信息处理与综合的任务来支持研究人员,潜在地揭示数据中的关系。其目的在于通过处理早期研究阶段中计算密集的环节,来增强人类的认知过程。

系统架构与方法论:AI 联合科学家的架构基于多智能体框架,旨在模拟协作与迭代流程。该设计集成了具备特定职责的专业化 AI 智能体,共同为研究目标做出贡献。一个监督智能体在异步任务执行框架中管理并协调各个智能体的活动,使计算资源能够灵活扩展。

核心智能体及其功能包括(见图 1):

  • 生成智能体(Generation Agent): 通过文献探索和模拟科学辩论产生初始假设,从而启动流程。
  • 反思智能体(Reflection Agent): 作为同行评审者,批判性地评估生成假设的正确性、新颖性和质量。
  • 排序智能体(Ranking Agent:): 通过采用基于 Elo 的锦标赛,在模拟科学辩论中比较、排序并优先级化假设。
  • 进化智能体(Evolution Agent): 通过简化概念、综合观点和探索非常规推理,持续完善排名靠前的假设。
  • 邻近智能体(Proximity Agent): 计算邻近图以聚类相似想法,并帮助探索假设空间。
  • 元评审智能体(Meta-review Agent): 综合所有评审与辩论的洞见,以识别共性模式并提供反馈,使系统得以持续改进。

该系统的运行基础依托 Gemini,提供语言理解、推理与生成能力。系统引入“测试时计算扩展(test-time compute scaling)”机制,按需分配更多计算资源以迭代推理并提升输出质量。系统处理并综合来自多元来源的信息,包括学术文献、网页数据与数据库。

图 1:AI 联合科学家:从构思到验证 unknown.png

系统遵循迭代的“生成—辩论—进化”路径,映射科学方法。在接收人类科学家输入的科学问题后,系统进入自我改进的循环,包括假设生成、评估与优化。假设将接受系统化评估,其中包含智能体之间的内部评估以及基于锦标赛的排序机制。

验证与结果: AI 联合科学家的实用性已在多项验证研究中得到证明,尤其是在生物医学领域,通过自动化基准测试、专家评审以及端到端湿实验评估其表现。

自动化与专家评估:在具有挑战性的 GPQA 基准上,系统的内部 Elo 评分与其结果的准确率一致性良好,在难度最高的“diamond set”上实现了 78.4% 的 top-1 准确率。对 200 余个研究目标的分析显示,增加测试时计算量可持续提升假设质量(以 Elo 评分衡量)。在一组经甄选的 15 个高难问题上,AI 共科学家优于其他最先进 AI 模型及人类专家提供的“最佳猜测”方案。在一项小规模评估中,生物医学专家认为该共科学家的输出较其他基线模型更具新颖性与影响力。该系统以 NIH Specific Aims 页面格式生成的药物再利用提案,也被由六位肿瘤学专家组成的小组评为高质量。

端到端实验验证:

药物再利用:针对急性髓系白血病(AML),系统提出了新的候选药物。其中一些如 KIRA6 完全为新颖建议,先前在 AML 用途中没有任何临床前证据。随后体外实验确认,KIRA6 及其他建议药物在多个 AML 细胞系中以具有临床相关性的浓度抑制了肿瘤细胞活力。

新型靶点发现:系统为肝纤维化识别出新的表观遗传学靶点。使用人源肝类器官的实验验证了这些发现,显示针对所建议表观遗传调控因子的药物具有显著的抗纤维化活性。其中一款已被 FDA 批准用于其他适应症的药物为再利用提供了机会。

抗菌耐药性:AI 联合科学家独立重现了未发表的实验发现。其任务是解释为何某些可移动遗传元件(cf-PICIs)在众多细菌物种中存在。两天内,系统排名最高的假设是 cf-PICIs 与多种噬菌体尾部互作以扩展其宿主范围。这与一个独立研究团队历经十余年研究后获得并经实验验证的新发现相呼应。

增强与局限:AI 联合科学家的设计理念强调增强而非完全自动化人类研究。研究人员通过自然语言与系统交互并引导其过程,提供反馈、贡献自身想法,并在“科学家在环”的协作范式中指挥 AI 的探索流程。然而,该系统仍存在一些局限。其知识受限于对开放获取文献的依赖,可能遗漏付费墙背后的关键既有工作。它对阴性实验结果的获取也有限,而这些结果虽鲜少发表,却对经验丰富的科学家至关重要。此外,系统从底层 LLMs 继承了局限性,包括潜在的事实不准确或“幻觉”。

安全性:安全是关键考量,系统内置多重防护。所有研究目标在输入时均进行安全审查,生成的假设也会被检查,以防系统被用于不安全或不道德的研究。一次使用 1,200 个对抗性研究目标的初步安全评估发现,系统能够稳健地拒绝危险输入。为确保负责任的开发,系统正通过“可信测试者计划”向更多科学家开放,以收集真实世界反馈。

实战代码示例

让我们看一个探索与发现型智能体的具体示例:Agent Laboratory,这是由 Samuel Schmidgall 在 MIT 许可下开发的项目。

“Agent Laboratory”是一套自主研究工作流框架,旨在增强而非取代人类的科学工作。该系统利用专门化的 LLMs 来自动化科学研究流程的各个阶段,从而使人类研究者能够将更多认知资源投入到概念构思与批判性分析。

该框架集成了“AgentRxiv”,一个面向自主研究智能体的去中心化存储库。AgentRxiv 便于研究成果的提交、检索与开发。

Agent Laboratory 通过若干明确阶段引导研究过程:

  1. 文献综述: 在初始阶段,专门化、由 LLM 驱动的智能体负责自主收集并批判性分析相关学术文献。这包括利用 arXiv 等外部数据库来识别、综合与分类相关研究,从而为后续阶段建立全面的知识库。
  2. 实验阶段: 此阶段涵盖实验设计的协同制定、数据准备、实验执行与结果分析。智能体利用集成工具(如用于代码生成与执行的 Python、用于模型访问的 Hugging Face)开展自动化实验。系统支持迭代式改进,智能体可根据实时结果调整并优化实验流程。
  3. 报告撰写: 在最后阶段,系统会自动生成完整的研究报告。这包括将实验阶段的发现与文献综述的洞见进行综合,按照学术规范来结构化文档,并集成诸如 LaTeX 等外部工具以实现专业的排版与图表生成。
  4. 知识共享: AgentRxiv 是一个使自主研究智能体能够共享、获取并协作推进科学发现的平台。它允许智能体在既有成果之上继续构建,促进累积式研究进展。

Agent Laboratory 的模块化架构确保了计算的灵活性。其目标是在保有人类研究者参与的同时,通过任务自动化提升科研生产力。

代码分析: 尽管全面的代码分析超出本书范围,但我希望向你提供一些关键洞见,并鼓励你自行深入研究代码。

评判: 为模拟人类的评估过程,系统采用三分式智能体评判机制来评估输出。该机制涉及部署三个相互独立的自主智能体,每个智能体从特定视角对产出进行评估,从而共同拟人化地再现人类判断的细腻与多维度特征。此方法使评估更为稳健与全面,超越单一指标,捕捉更丰富的定性判断。

class ReviewersAgent:
   def __init__(self, model="gpt-4o-mini", notes=None, openai_api_key=None):
       if notes is None: self.notes = []
       else: self.notes = notes
       self.model = model
       self.openai_api_key = openai_api_key

   def inference(self, plan, report):
       reviewer_1 = "You are a harsh but fair reviewer and expect good experiments that lead to insights for the research topic."
       review_1 = get_score(outlined_plan=plan, latex=report, reward_model_llm=self.model, reviewer_type=reviewer_1, openai_api_key=self.openai_api_key)

       reviewer_2 = "You are a harsh and critical but fair reviewer who is looking for an idea that would be impactful in the field."
       review_2 = get_score(outlined_plan=plan, latex=report, reward_model_llm=self.model, reviewer_type=reviewer_2, openai_api_key=self.openai_api_key)

       reviewer_3 = "You are a harsh but fair open-minded reviewer that is looking for novel ideas that have not been proposed before."
       review_3 = get_score(outlined_plan=plan, latex=report, reward_model_llm=self.model, reviewer_type=reviewer_3, openai_api_key=self.openai_api_key)

       return f"Reviewer #1:\n{review_1}, \nReviewer #2:\n{review_2}, \nReviewer #3:\n{review_3}"

评判智能体配备了特定提示词,贴近人类评审通常采用的认知框架与评价标准。该提示词引导智能体从与人类专家相似的视角审视输出,考虑相关性、连贯性、事实准确性与整体质量等因素。通过将这些提示词设计为贴合人类评审流程,系统力求达到接近人类洞察力的评估精细度。

def get_score(outlined_plan, latex, reward_model_llm, reviewer_type=None, attempts=3, openai_api_key=None):
   e = str()
   for _attempt in range(attempts):
       try:
          
           template_instructions = """
           Respond in the following format:

           THOUGHT:
           <THOUGHT>

           REVIEW JSON:
           ```json
           <JSON>
           ```

           In <THOUGHT>, first briefly discuss your intuitions 
           and reasoning for the evaluation.
           Detail your high-level arguments, necessary choices 
           and desired outcomes of the review.
           Do not make generic comments here, but be specific 
           to your current paper.
           Treat this as the note-taking phase of your review.

           In <JSON>, provide the review in JSON format with 
           the following fields in the order:
           - "Summary": A summary of the paper content and 
           its contributions.
           - "Strengths": A list of strengths of the paper.
           - "Weaknesses": A list of weaknesses of the paper.
           - "Originality": A rating from 1 to 4 
             (low, medium, high, very high).
           - "Quality": A rating from 1 to 4 
             (low, medium, high, very high).
           - "Clarity": A rating from 1 to 4 
             (low, medium, high, very high).
           - "Significance": A rating from 1 to 4 
             (low, medium, high, very high).
           - "Questions": A set of clarifying questions to be
              answered by the paper authors.
           - "Limitations": A set of limitations and potential
              negative societal impacts of the work.
           - "Ethical Concerns": A boolean value indicating 
              whether there are ethical concerns.
           - "Soundness": A rating from 1 to 4 
              (poor, fair, good, excellent).
           - "Presentation": A rating from 1 to 4 
              (poor, fair, good, excellent).
           - "Contribution": A rating from 1 to 4 
             (poor, fair, good, excellent).
           - "Overall": A rating from 1 to 10 
             (very strong reject to award quality).
           - "Confidence": A rating from 1 to 5 
             (low, medium, high, very high, absolute).
           - "Decision": A decision that has to be one of the
             following: Accept, Reject.

           For the "Decision" field, don't use Weak Accept,   
           Borderline Accept, Borderline Reject, or Strong Reject.  
           Instead, only use Accept or Reject.
           This JSON will be automatically parsed, so ensure 
           the format is precise.
           """

在这一多智能体系统中,研究流程围绕专业化角色构建,模拟典型的学术层级,以精简工作流并优化产出。

教授智能体: 教授智能体充当主要研究主管,负责制定研究议程、定义研究问题,并向其他智能体分派任务。该智能体设定战略方向,确保与项目目标保持一致。

class ProfessorAgent(BaseAgent):
   def __init__(self, model="gpt4omini", notes=None, max_steps=100, openai_api_key=None):
       super().__init__(model, notes, max_steps, openai_api_key)
       self.phases = ["report writing"]

   def generate_readme(self):
       sys_prompt = f"""You are {self.role_description()} \n Here is the written paper \n{self.report}. Task instructions: Your goal is to integrate all of the knowledge, code, reports, and notes provided to you and generate a readme.md for a github repository."""
       history_str = "\n".join([_[1] for _ in self.history])
       prompt = (
           f"""History: {history_str}\n{'~' * 10}\n"""
           f"Please produce the readme below in markdown:\n")
       model_resp = query_model(model_str=self.model, system_prompt=sys_prompt, prompt=prompt, openai_api_key=self.openai_api_key)
       return model_resp.replace("```markdown", "")

博士后智能体: 博士后智能体的职责是执行研究。这包括开展文献综述、设计与实施实验,以及生成论文等研究成果。重要的是,博士后智能体具备编写与执行代码的能力,以便实际落实实验方案与数据分析。该智能体是研究产出的主要生产者。

class PostdocAgent(BaseAgent):
   def __init__(self, model="gpt4omini", notes=None, max_steps=100, openai_api_key=None):
       super().__init__(model, notes, max_steps, openai_api_key)
       self.phases = ["plan formulation", "results interpretation"]

   def context(self, phase):
       sr_str = str()
       if self.second_round:
           sr_str = (
               f"The following are results from the previous experiments\n",
               f"Previous Experiment code: {self.prev_results_code}\n"
               f"Previous Results: {self.prev_exp_results}\n"
               f"Previous Interpretation of results: {self.prev_interpretation}\n"
               f"Previous Report: {self.prev_report}\n"
               f"{self.reviewer_response}\n\n\n"
           )
       if phase == "plan formulation":
           return (
               sr_str,
               f"Current Literature Review: {self.lit_review_sum}",
           )
       elif phase == "results interpretation":
           return (
               sr_str,
               f"Current Literature Review: {self.lit_review_sum}\n"
               f"Current Plan: {self.plan}\n"
               f"Current Dataset code: {self.dataset_code}\n"
               f"Current Experiment code: {self.results_code}\n"
               f"Current Results: {self.exp_results}"
           )
       return ""

审稿智能体: 审稿智能体对博士后智能体的研究成果进行关键性评估,考察论文与实验结果的质量、有效性与科学严谨性。此评估阶段模拟学术环境中的同行评审流程,以确保在定稿前达到高标准的研究质量。

ML 工程智能体: 机器学习工程智能体充当机器学习工程师,与博士生进行对话式协作以开发代码。其核心职能是为数据预处理生成简明代码,并整合提供的文献综述与实验方案中提炼的见解。这确保数据被恰当地格式化并为指定实验做好准备。

"You are a machine learning engineer being directed by a PhD student who will help you write the code, and you can interact with them through dialogue.\n"
"Your goal is to produce code that prepares the data for the provided experiment. You should aim for simple code to prepare the data, not complex code. You should integrate the provided literature review and the plan and come up with code to prepare data for this experiment.\n"

SW 工程智能体: 软件工程智能体指导机器学习工程智能体。其主要目标是协助机器学习工程智能体为特定实验创建简洁的数据准备代码。软件工程智能体会整合提供的文献综述与实验计划,确保生成的代码简单明了并与研究目标直接相关。

"You are a software engineer directing a machine learning engineer, where the machine learning engineer will be writing the code, and you can interact with them through dialogue.\n"
"Your goal is to help the ML engineer produce code that prepares the data for the provided experiment. You should aim for very simple code to prepare the data, not complex code. You should integrate the provided literature review and the plan and come up with code to prepare data for this experiment.\n"

总而言之,“Agent Laboratory”代表了一种用于自主科学研究的复杂框架。它旨在通过自动化关键研究阶段并促进协同的 AI 驱动知识生成来扩展人类的研究能力。该系统通过管理日常任务同时保持人类监督,从而提高研究效率。

回顾

是什么(What)

智能体通常在预定义的知识范围内运行,限制了其处理新颖情境或开放式问题的能力。在复杂且动态的环境中,这种静态、预编程的信息不足以实现真正的创新或发现。根本挑战在于使智能体超越简单的优化,主动寻求新信息并识别“未知的未知”。这需要从纯粹的被动反应转向主动的、具有智能体特质的探索,从而扩展系统自身的理解与能力。

为什么(Why)

标准化的解决方案是构建专为自主探索与发现而设计的智能体系统。这些系统通常采用多智能体框架,让专门化的 LLMs 协作,模拟诸如科学方法等流程。比如,不同的智能体可分别负责生成假设、进行批判性审查,并演化出最有前景的概念。这种结构化的协作方法使系统能够智能地在广阔的信息空间中导航,设计并执行实验,生成真正新的知识。通过自动化探索中耗时费力的环节,这些系统增强人类智力并显著加速发现的步伐。

经验法则(Rule of Thumb)

当在开放式、复杂或快速演变的领域中运行且解空间尚未完全定义时,使用“探索与发现”模式。它非常适合需要生成新颖假设、策略或洞见的任务,如科学研究、市场分析与创意内容生成。当目标是发掘“未知的未知”而非仅优化已知流程时,此模式至关重要。

图示摘要

unknown 2.png

关键点

  • AI 中的探索与发现使智能体能够主动追求新信息与新可能,这对于在复杂且不断演化的环境中导航至关重要。
  • 诸如 Google Co-Scientist 等系统展示了智能体如何能够自主生成假设并设计实验,以补充人类的科学研究。
  • 以 Agent Laboratory 的专门角色为代表的多智能体框架,通过自动化文献综述、实验与报告撰写来改进研究。
  • 最终,这些代智能体在通过管理计算密集型任务来提升人类的创造力与问题解决能力,从而加速创新与发现。

总结

总之,“探索与发现”模式是一个真正具有主体性(agentic)的系统之精髓,定义了其从被动执行指令走向主动探索环境的能力。这种内在的主体性驱动力使 AI 能够在复杂领域中自主运行,不仅执行任务,还能独立设定子目标以发掘新信息。这种高级的主体性行为在多智能体框架中得到最强有力的体现,其中每个智能体都在更大的协作过程中承担特定且主动的角色。例如,Google 的 Co-scientist 这一高度主体性的系统,就包含能自主生成、辩论并演化科学假设的智能体。

像 Agent Laboratory 这样的框架通过创建模拟人类研究团队的智能体层级,进一步为这一过程建立结构,使系统能够自我管理整个发现生命周期。这一模式的核心在于编排涌现的智能体行为,使系统以最少的人类干预追求长期、开放式目标。这提升了人机协作的层次,将 AI 定位为真正具备智能体能力的协作伙伴,能够自主执行探索性任务。通过将这种主动的发现工作委派给具备智能体能力的系统,人类智慧得到显著增强,从而加速创新。此类强大智能体能力的发展也需要对安全与伦理监管作出坚定承诺。最终,这一模式为打造真正具备智能体能力的 AI 提供了蓝图,将计算工具转变为在求知过程中能够独立追求目标的合作伙伴。

参考资料

  1. Exploration-Exploitation Dilemma**:** A fundamental problem in reinforcement learning and decision-making under uncertainty. en.wikipedia.org/wiki/Explor…
  2. Google Co-Scientist: research.google/blog/accele…
  3. Agent Laboratory: Using LLM Agents as Research Assistants github.com/SamuelSchmi…
  4. AgentRxiv: Towards Collaborative Autonomous Research: agentrxiv.github.io/