Skip to main content
章节17 min read

第21章:Exploration and Discovery

第21章:Exploration and Discovery 本章探讨了使智能 Agent 能够主动寻找新信息、发现新可能性并识别其运行环境中的未知未知数的模式。Exploration and discovery 不同于预定义解空间内的反应性行为或优化。相反,它们专注于 Agent 主动探索陌生领域、尝试新方法并产生新...

第21章:Exploration and Discovery

本章探讨了使智能 Agent 能够主动寻找新信息、发现新可能性并识别其运行环境中的未知未知数的模式。Exploration and discovery 不同于预定义解空间内的反应性行为或优化。相反,它们专注于 Agent 主动探索陌生领域、尝试新方法并产生新知识或理解。这种模式对于在开放式、复杂或快速发展的领域中运行的 Agent 至关重要,在这些领域中,静态知识或预编程的解决方案是不够的。它强调 Agent 扩展其理解和能力的能力。

实际应用与用例

AI Agent 拥有智能优先级排序和探索的能力,从而在各种领域产生应用。通过自主评估和排序潜在行动,这些 Agent 可以驾驭复杂的环境、发现隐藏的见解并推动创新。这种优先探索的能力使它们能够优化流程、发现新知识和生成内容。

示例:

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

Google Co-Scientist

AI co-scientist 是由 Google Research 开发的 AI 系统,设计为计算科学协作者。它协助人类科学家进行研究方面的工,如假设生成、提案完善和实验设计。该系统基于 Gemini LLM 运行。

AI co-scientist 的开发解决了科学研究中的挑战。这些挑战包括处理大量信息、生成可测试的假设以及管理实验规划。AI co-scientist 通过执行涉及大规模信息处理和综合的任务来支持研究人员,可能会揭示数据中的关系。其目的是为了通过处理早期研究的计算量大的方面来增强人类的认知过程。

系统架构和方法论:AI co-scientist 的架构基于多 Agent 框架,结构化为模拟协作和迭代过程。此设计集成了专业的 AI Agent,每个 Agent 在协作目标中都有特定的角色。一个 supervisor Agent 在允许灵活扩展计算资源的异步任务执行框架内管理和协调这些独立 Agent 的活动。

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

  • Generation agent(生成 Agent):通过文献探索和模拟科学辩论启动过程,产生初始假设。
  • Reflection agent(反思 Agent):充当同行评审员,批判性地评估生成的假设的正确性、新颖性和质量。
  • Ranking agent(排名 Agent):采用基于 Elo 的锦标赛,通过模拟科学辩论来比较、排名和优先处理假设。
  • Evolution agent(进化 Agent):通过简化概念、综合想法和探索非常规推理,不断完善排名靠前的假设。
  • Proximity agent(邻近度 Agent):计算邻近图以聚类相似想法,并协助探索假设景观。
  • Meta-review agent(元评审 Agent):综合所有评审和辩论的见解,以识别共同模式并提供反馈,使系统能够持续改进。

系统的运行基础依赖于 Gemini,它提供语言理解、推理和生成能力。该系统结合了"test-time compute scaling",这是一种分配增加的计算资源以迭代推理和增强输出的机制。系统处理并综合来自不同来源的信息,包括学术文献、基于 web 的数据和数据库。

图1:(由作者提供)AI Co-Scientist:从构思到验证

该系统遵循迭代的"生成、辩论和进化"方法,反映了科学方法。在输入来自人类科学家的科学问题后,系统参与假设生成、评估和精化的自我改进循环。假设经过系统评估,包括 Agent 之间的内部评估和基于锦标赛的排名机制。

验证和结果:AI co-scientist 的实用性已在多项验证研究中得到证明,特别是在生物医学领域,通过自动化基准、专家评审和端到端湿实验室实验来评估其性能。

自动化和专家评估:在具有挑战性的 GPQA 基准上,系统的内部 Elo 评级被证明与其结果的准确性一致,在困难的"diamond set"上实现了 78.4% 的 top-1 准确率。对 200 多个研究目标的跨领域分析表明,扩展 test-time compute 可以持续提高假设的质量,如 Elo 评级所衡量。在一组精心策划的 15 个挑战性问题上,AI co-scientist 的表现优于其他最先进的 AI 模型以及人类专家提供的"最佳猜测"解决方案。在一项小规模评估中,生物医学专家评价 co-scientist 的输出与其他基线模型相比更具新颖性和影响力。该系统用于药物重新定位的提案(格式为 NIH Specific Aims 页面)也被一个由六名专家肿瘤学家组成的小组评定为高质量。

端到端实验验证:

  • 药物重新定位:对于急性髓系白血病(AML),系统提出了新的候选药物。其中一些(如 KIRA6)是完全新颖的建议,之前没有用于 AML 的临床前证据。随后的体外实验证实,KIRA6 和其他建议的药物在多个 AML 细胞系中在临床相关浓度下抑制了肿瘤细胞的生存能力。
  • 新靶点发现:该系统确定了肝纤维化的新表观遗传靶点。使用人类肝脏类器官的实验室实验验证了这些发现,表明针对建议的表观遗传修饰剂的药物具有显著的抗纤维化活性。已确定的药物之一已获得另一种适应症的 FDA 批准,为重新定位开辟了机会。
  • 抗微生物药物耐药性:AI co-scientist 独立地重现了未发表的实验发现。它的任务是解释为什么某些可移动遗传元件(cf-PICIs)存在于许多细菌物种中。在两天内,该系统的排名第一的假设是 cf-PICIs 与不同的噬菌体尾部相互作用以扩大其宿主范围。这反映了一个独立研究小组经过十多年研究后达到的新的、经实验验证的发现。

增强与局限性:AI co-scientist 背后的设计理念强调增强而不是完全自动化人类研究。研究人员通过自然语言与系统交互并引导系统,提供反馈、贡献自己的想法并引导 AI 的探索过程,采用"scientist-in-the-loop"协作范式。然而,该系统有一些局限性。其知识受到对开放获取文献的依赖的限制,可能错过了付费墙背后的关键先前工作。它还对负面实验结果的可及性有限,这些结果很少发表,但对有经验的科学至关重要。此外,该系统继承了底层 LLM 的局限性,包括事实不准确或"幻觉"的潜在可能。

安全性:安全性是一个关键考虑因素,系统结合了多重保障措施。所有研究目标在输入时都会经过安全性审查,生成的假设也会经过检查,以防止系统被用于不安全或不道德的研究。使用 1,200 个对抗性研究目标进行的初步安全评估发现,该系统可以稳健地拒绝危险的输入。为了确保负责任的发展,该系统正通过受信任的测试人员计划向更多科学家提供,以收集现实世界的反馈。

动手代码示例

让我们看一个正在运行的用于 Exploration and Discovery 的 agentic AI 的具体示例:Agent Laboratory,这是 Samuel Schmidgall 在 MIT License 下开发的一个项目。

"Agent Laboratory"是一个自主研究工作流框架,旨在增强而非取代人类的科学努力。该系统利用专业的 LLM 来自动化科学研究过程的各个阶段,从而使人类研究人员能够将更多的认知资源用于概念化和批判性分析。

该框架集成了"AgentRxiv",这是一个用于自主研究 Agent 的去中心化存储库。AgentRxiv 促进研究输出的存储、检索和开发。

Agent Laboratory 通过不同的阶段引导研究过程:

  1. 文献综述:在此初始阶段,专业的基于 LLM 的 Agent 负责自主收集和重要分析相关的学术文献。这涉及利用外部数据库(如 arXiv)来识别、综合和分类相关研究,有效地为后续阶段建立全面的知识库。
  2. 实验:此阶段包括实验设计的协作制定、数据准备、实验执行和结果分析。Agent 利用集成工具(如用于代码生成和执行的 Python 和用于模型访问的 Hugging Face)来进行自动化实验。该系统设计用于迭代精化,Agent 可以根据实时结果调整和优化实验程序。
  3. 报告撰写:在最后阶段,系统自动化生成全面的研究报告。这涉及将实验阶段的发现与文献综述的见解综合起来,按照学术惯例构建文档,并集成外部工具(如 LaTeX)以进行专业格式化和图形生成。
  4. 知识共享:AgentRxiv 是一个使自主研究 Agent 能够共享、访问和协作推进科学发现的平台。它允许 Agent 基于以前的发现进行构建,促进累积研究进展。

Agent Laboratory 的模块化架构确保了计算灵活性。目标是通过自动化任务来增强研究生产力,同时保持人类研究人员的作用。

代码分析:虽然全面的代码分析超出了本书的范围,但我想为你提供一些关键见解,并鼓励你自己深入研究代码。

判断:为了模拟人类评估过程,该系统采用了一个三方 agentic 判断机制来评估输出。这涉及部署三个不同的自主 Agent,每个都配置为从特定角度评估生产,从而共同模拟人类判断的细致入微和多方面的性质。这种方法允许进行更稳健和全面的评估,超越单一指标以捕获更丰富的定性评估。

python
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}"

判断 Agent 的设计带有一个特定的 prompt,它密切模拟人类评审员通常采用认知框架和评估标准。这个 prompt 引导 Agent 通过类似于人类专家的方式来分析输出,考虑相关性、连贯性、事实准确性和整体质量等因素。通过制作这些 prompt 以反映人类评审协议,该系统旨在实现接近类人 discernment 的评估复杂性。

python
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. """

在这个多 Agent 系统中,研究过程围绕专业角色进行结构化,反映了典型的学术层级,以简化工作流并优化输出。

Professor Agent(教授 Agent):Professor Agent 充当主要研究主管,负责建立研究议程、定义研究问题并将任务委托给其他 Agent。该 Agent 设定战略方向并确保与项目目标保持一致。

python
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", "")

PostDoc Agent(博士后 Agent):PostDoc Agent 的角色是执行研究。这包括进行文献综述、设计和实施实验以及生成研究输出(如论文)。重要的是,PostDoc Agent 具有编写和执行代码的能力,使实验协议和数据分析的实际实施成为可能。该 Agent 是研究 artifact 的主要生产者。

python
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 ""

Reviewer Agents(评审 Agent):评审 Agent 对来自 PostDoc Agent 的研究输出进行批判性评估,评估论文和实验结果的质量、有效性和科学严谨性。这个评估阶段模拟了学术环境中的同行评审过程,以确保在最终确定之前达到高标准的研究输出。

ML Engineering Agents(机器学习工程 Agent):机器学习工程 Agent 充当机器学习工程师,与 PhD 学生进行对话协作以开发代码。它们的中心功能是生成简单的数据预处理代码,综合从提供的文献综述和实验协议中获得的见解。这保证了数据的格式适当并为 designated 实验做好准备。

text
"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" "You 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"

SWEngineerAgents(软件工程师 Agent):软件工程 Agent 指导机器学习工程师 Agent。它们的主要目的是协助机器学习工程师 Agent 为特定实验创建简单的数据准备代码。软件工程师 Agent 集成了提供的文献综述和实验计划,确保生成的代码简单明了并与研究目标直接相关。

text
"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(是什么):AI Agent 通常在预定义的知识范围内运行,限制了其处理新情况或开放式问题的能力。在复杂和动态的环境中,这种静态的、预编程的信息不足以实现真正的创新或发现。基本的挑战是使 Agent 能够超越简单的优化,主动寻找新信息并识别"未知的未知"。这需要一种范式转变,从纯粹的反应性行为转向主动的、agentic 探索,以扩展系统自身的理解和能力。

Why(为什么):标准化的解决方案是构建专门设计用于自主探索和发现的 Agentic AI 系统。这些系统通常利用多 Agent 框架,其中专业的 LLM 协作模拟科学方法等过程。例如,可以将不同的 Agent 分配给生成假设、批判性审查它们并进化最有希望的概念。这种结构化的、协作的方法允许系统智能地浏览广阔的信息景观、设计和执行实验并生成真正的新知识。通过自动化探索中劳动密集型方面,这些系统增强了人类智力并显著加速了发现的步伐。

Rule of thumb(经验法则):在开放式、复杂或快速发展的领域中运行且解空间未完全定义时,请使用 Exploration and Discovery 模式。它非常适用于需要生成新假设、策略或见解的任务,例如科学研究、市场分析和创意内容生成。当目标是揭示"未知的未知"而不仅仅是优化已知过程时,此模式至关重要。

视觉摘要

图2:Exploration and Discovery 设计模式

关键要点

  • AI 中的 Exploration and Discovery 使 Agent 能够积极追求新信息和可能性,这对于驾驭复杂和不断发展的环境至关重要。
  • Google Co-Scientist 等系统演示了 Agent 如何自主生成假设并设计实验,补充人类科学研究。
  • 多 Agent 框架(以 Agent Laboratory 的专业角色为例)通过自动化文献综述、实验和报告撰写来改进研究。
  • 最终,这些 Agent 旨在通过管理计算密集型任务来增强人类的创造力和问题解决能力,从而加速创新和发现。

结论

总之,Exploration and Discovery 模式是真正的 agentic 系统的精髓,定义了其超越被动指令执行以主动探索其环境的能力。这种天生的 agentic 驱动力使 AI 能够在复杂领域自主运行,不仅仅执行任务,而且独立设定子目标以发现新信息。这种先进的 agentic 行为最有力地体现在多 Agent 框架中,其中每个 Agent 都体现了更大协作过程中的特定、主动角色。例如,Google 的 Co-scientist 的高度 agentic 系统具有自主生成、辩论和进化科学假设的 Agent。

像 Agent Laboratory 这样的框架通过创建模拟人类研究团队的 agentic 层级结构来进一步构建此框架,使系统能够自我管理整个发现生命周期。此模式的核心在于编排新兴的 agentic 行为,允许系统以最少的人类干预追求长期、开放式目标。这提升了人与 AI 的伙伴关系,将 AI 定位为处理探索任务自主执行的真正 agentic 协作者。通过将这种主动发现工作委托给 agentic 系统,人类的智力得到了显著增强,加速了创新。开发如此强大的 agentic 能力还需要强烈致力于安全和道德监督。最终,此模式为创建真正的 agentic AI 提供了蓝图,将计算工具转变为追求知识的独立、寻求目标的合作伙伴。

参考文献

  1. Exploration-Exploitation Dilemma: A fundamental problem in reinforcement learning and decision-making under uncertainty. https://en.wikipedia.org/wiki/Exploration%E2%80%93exploitation_dilemma
  2. Google Co-Scientist: https://research.google/blog/accelerating-scientific-breakthroughs-with-an-ai-co-scientist/
  3. Agent Laboratory: Using LLM Agents as Research Assistants https://github.com/SamuelSchmidgall/AgentLaboratory
  4. AgentRxiv: Towards Collaborative Autonomous Research: https://agentrxiv.github.io/