做AI Agent,必须要知道的长短期规划

360影视 国产动漫 2025-03-11 22:57 2

摘要:Manus AI横空出世,自称首个通用AIAgent,可自主思考、规划、执行复杂任务,甚至其邀请码炒至上万元,在圈内一码难求,基于此觉得有必要在回顾下智能体整个体系,先看看智能体快慢思考的问题

Manus AI横空出世,自称首个通用AI Agent,可自主思考、规划、执行复杂任务,甚至其邀请码炒至上万元,在圈内一码难求,基于此觉得有必要在回顾下智能体整个体系,先看看智能体快慢思考的问题

Daniel Kahneman 在《思考,快与慢》「链接」中提出的双系统认知理论,将人类思维划分为快速、直觉的“快思考”和缓慢、逻辑的“慢思考”。 这一理论虽然源于心理学,却为理解并提升大语言模型 (LLM) 的推理能力提供了新的视角。

“快思考”与自回归文本生成:高效却易受限

传统的大模型,尤其是自回归式语言模型,在文本生成方面展现出惊人的效率,这与其依赖训练数据中习得的文本关系密不可分。 这种能力与人类的“快思考”极为相似,模型能够基于上下文快速生成最可能的文本,实现流畅的自然语言表达。

然而,这种“快思考”模式同样存在局限性。 在面对需要复杂推理的任务时,模型往往难以一步到位得出正确答案,暴露出缺乏逻辑推理能力的短板。 复杂的推理过程本质上是多个逻辑步骤的递进,而单纯依赖文本关系难以有效构建这种推理链。

“慢思考”的引入:思维链 (Chain-of-Thought) 的破局

为了弥补大模型在复杂推理方面的不足,思维链 (Chain-of-Thought, CoT) 应运而生。 2022 年,由 Google 提出的 CoT prompting 使大模型能够生成一系列中间推理步骤,将复杂的推理过程分解为更小的、可管理的逻辑单元,从而大幅提升解决复杂问题的能力。 这种方法类似于人类的“慢思考”,强调逐步推理和问题分解。

CoT 的诞生开启了对思维链研究的热潮,涌现出多种变体,例如 CoT-SC、ToT、GoT 等。 这些变体往往通过增加思维路径的复杂程度来提升推理的准确性,但同时也意味着更高的 Token 消耗。 尽管如此,实验结果表明,增加推理路径的复杂度能够有效地提高大模型解决问题的能力。

超越文字:工具使用 (Tool Use) 的崭新维度

除了改进语言模型自身的推理能力,让模型学会利用外部工具也成为另一个重要的研究方向。 2021 年,OpenAI 发布了基于 GPT-3 的微调模型 WebGPT,该模型具备与 Web 浏览器交互的能力。

WebGPT 通过编写特定指令(例如“搜索…”、“在页面中查找…”、“引用:…”)来操纵 Web 浏览器,并通过观察搜索结果来生成最终输出。 这标志着大模型在工具使用方面的一次重要尝试,涵盖了从 单个步骤的工具使用到结果观察 等多个方面。 通过与工具交互,大模型能够突破自身知识的局限,利用外部信息进行更深入的推理和决策。

大模型遇上智能体:指令、思维链与规划的进阶融合

早期的智能体项目,如 PaLM-SayCan 和 ReACT,率先探索了这种方向,通过在推理过程中选择合适的工具来实现目标。

ReACT: 采用 Thought (思考)、Action (行动,包含 Action Input 行动输入)、Observation (观察) 的循环,最终得出 Conclusion (结论)。

复杂的智能体系统:规划模式的演进

随着大语言模型的兴起,人们开始思考如何更有效地利用大模型构建智能体应用。 由此,涌现出 CAMEL, MetaGPT, AutoGen, HuggingGPT, AGENTS, ChatDev, XAgent 等复杂的智能体系统。 这些项目改进智能体系统的规划模块,重点关注长短期规划、规划输出格式、用户提示拓展解释以及反馈迭代机制等方面。

短期规划:实时反馈,灵活应变

核心思想: 依赖实时反馈进行行动决策,强调当前环境和智能体状态的直接影响。 类似于战术制定,赋予智能体更高的适应性和工具利用能力。

代表项目:

AutoGPT: 让 LLM 反复决定下一步行动。

CAMEL: AI 用户根据历史对话提供新的指令。

MetaGPT: 采用 _observe, _think, _act 的循环。

AgentVerse: 通过专家招募和协同决策制定解决方案。

XAgent (Inner_Cycle): ToolAgent 采用 ReACT 解决子任务。

ProAgent: Planner 模块逐步做出最终决策。

长期规划:运筹帷幄,系统推进

核心思想: 在行动开始前制定详细的步骤清单,便于人工参与流程的制定、优化和修改。

代表项目:

BabyAGI: 根据先前任务的结果和预定义的目标创建任务。

HuggingGPT: 使用 ChatGPT 在收到用户请求时进行任务规划。

AGENTS: 允许用户通过 SOP(标准操作流程)对语言智能体进行精细控制和指导。

ChatDev: 使用 ChatChainConfig.json 控制整体开发过程。

XAgent (Outer_Cycle): PlanAgent 生成初始计划,为任务执行奠定基础。

长短期规划结合:相互补充,高效适应

核心思想: 在宏观目标层面采用长期规划,在局部任务层面运用短期规划,实现战略与战术的互补。

灵活调整: 长期计划可以在后续行动过程中进行调整,短期规划能响应即时情况和挑战。

代表项目:

XAgent (双循环机制): 外环(长期规划)使用 PlanAgent 生成初始计划,内环(短期规划)使用 ReACT 解决子任务,并利用外部系统检索可用工具。

如近期很火热的manus平替开源方案owl的代码可见

run_society( society: RolePlaying, round_limit: int = 15) -> Tuple[str, List[dict], dict]: overall_completion_token_count = 0 overall_prompt_token_count = 0 chat_history = init_prompt = """Now please give me instructions to solve over overall task step by step. If the task requires some specific knowledge, please instruct me to use tools to complete the task. """ input_msg = society.init_chat(init_prompt) for _round in range(round_limit): assistant_response, user_response = society.step(input_msg) # ... # convert tool call to dict tool_call_records: List[dict] = for tool_call in assistant_response.info["tool_calls"]: tool_call_records.append(tool_call.as_dict) _data = { "user": user_response.msg.content, "assistant": assistant_response.msg.content, "tool_calls": tool_call_records, } # ... if ( assistant_response.terminated or user_response.terminated or "TASK_DONE" in user_response.msg.content ): break input_msg = assistant_response.msg answer = chat_history[-1]["assistant"] # ... return answer, chat_history, token_info

来源:HuggingFace

相关推荐