AI-Agents(多智能体)的工程本质:Plan-And-Execute

AI-Agents(多智能体)的工程本质:Plan-And-Execute

专注于AI、云计算、猫,欢迎关注


之前以 ReAct 模式做切入,讲述了一个 AI-Agent 的工程本质。

AI-Agent(智能体)的工程本质:ReAct

本文以 Plan-And-Execute 模式做切入,讲述多个AI-Agents协作的工程本质。

本文也将表达:多个AI-Agents可以带来哪些好处?能够解决哪些问题?

单个 AI-Agent 是一种从“AI工具”到“AI助手”的范式转移。

多个 AI-Agents 是一种从”万能助手”到”专业团队”的范式转变。

AI-Agent是什么?

AI-Agent是我们给大模型加上“工作规则”和“工具”,使它能够与外部环境持续交互,自主地完成任务目标。

‘工作规则’是基于某种方法论,任何人都可以去定义大模型的做事规范,恰到好处的方法论可以让任务目标更高效、更准确地达成。ReAct/Plan-And-Execute它们就是工作规则。

理论指导

https://blog.langchain.com/planning-agents/

AI-Agents(多智能体)的工程本质:Plan-And-Execute

langchain给Plan-And-Execute模式定义了三种类型:

  1. Plan-And-Execute
  2. LLMCompiler
  3. ReWOO

我选择第1种类型为切入点来揭示其工程本质、同时也揭开多个AI-Agents协作的工程本质。

工作模式

Plan-And-Execute模式是如何工作的呢?

AI-Agents(多智能体)的工程本质:Plan-And-Execute

首先,分析阶段,大模型 会对任务进行分析,从而理解任务目标。

然后,规划阶段,大模型 Agent 智能体 会将任务分解成多个有顺序的子任务。

接着,执行阶段,大模型 会按顺序去要求Agent执行子任务,Agent 执行子任务后会将结果答复大模型。

之后,重新规划,大模型 会将子任务执行结果和子任务列表重新思考、重新规划,得到一个新的子任务列表。

最终,循环往复,所有子任务执行完毕后,大模型 会将所有子任务的结果组合起来,生成最终结果。

工程本质

由于Plan-And-Execute工作模式的步骤较多,我通过代码来进行演示和阐述。

我使用青云智算平台里的大模型:DeepSeek-V3.1-Terminus

我的项目地址:

https://github.com/lindongsen/essence-of-AI-engineering.git

AI-Agents(多智能体)的工程本质:Plan-And-Execute

这里有两个Agent:

一个是AgentPlanAndExecute,用于规划任务;

一个是AgentReAct,用于执行单一任务。

AgentPlanAndExecute 在运行过程中会调用 AgentReAct 去执行子任务。

这是“Plan-And-Execute”提示词:

你的核心职责是将用户提供的“高级任务”分解为可操作的子任务,制定一个循序渐进的计划,然后协调执行这些子任务。

你有一个辅助工具AgentShell,它可以执行单一、具体的任务。

你的输出应包括完整的计划概述、每个步骤的执行结果以及最终总结。

严格遵循以下步骤:

  1. 任务提交(task):用户会提交一个任务。当用户没有提交任务或任务模糊,请向用户发起询问(task-ask),用户会答复给你task。
  2. 任务分析(plan-analysis):分析任务描述,理解任务目标、上下文信息、任何约束条件。如果任务模糊,请向用户发起询问(task-ask)。
  3. 任务规划(plan-list):分解任务为自然语言描述的一个或多个逻辑子任务(subtasks),这些子任务是有顺序的,每个子任务是原子性的,确保它们组合起来能实现总体目标。
  4. 执行(execute-subtask):按顺序执行子任务,调用AgentShell来执行单一子任务。等待单一子任务执行完毕,获得子任务的执行结果(subtask-result)。
  5. 重新规划(replan-list):你已经知道当前子任务执行到哪一步,需要再根据‘subtask-result’和‘subtasks’重新做任务规划,生成新的subtasks。任务规划方式同上述的plan-list步骤。
  6. 执行(execute-subtask):同上述的execute-subtask步骤。
  7. 最终结果(final):所有子任务执行完毕后,将所有子任务的结果组合起来,生成最终输出,确保输出符合用户的原始任务目标。

特别注意:

  • 在plan-list和replan-list这两个步骤中,当你遇到模糊的问题,例如:不清楚操作系统版本、相关工具是否存在等情况,应该将这类模糊事件规划成子任务去做确定。
  • 当你‘不理解’任务目标,则输出中必须有task-ask,否则输出中必须有且仅有一个‘execute-subtask或final’。
  • 子任务不允许任何改变已有文件和文件夹的操作,包括但不限于:删除、修改、移动、重命名等。

输出格式要求:

所有步骤必须严格使用JSON的格式输出,当有超过1个输出时使用list格式将json作为元素按照顺序输出,JSON支持的关键字如下。

  • step_name, 步骤名称,字符串格式
  • raw_text, 原始内容,字符串格式
  • tool_call, 指定工具名,字符串格式,仅execute-subtask步骤使用
  • tool_args, 指定工具参数,JSON格式,仅execute-subtask步骤使用

AgentShell的调用方式:

  • agent_shell(message),返回JSON,如{“step_name”:“subtask_result”,“raw_text”:“ok”}。

这是“Plan-And-Execute”执行过程:

a. 启动会话

~/essence-of-AI-engineering# DEBUG=1 uv run AgentPlanAndExecute.py

Welcome to the Plan-And-Execute AI Agent. Type ‘exit’ to quit.

Enter your task:

b. 发起任务

任务内容是:“请转换视频到音频,输出到相同的文件夹下,文件夹是/workspace”

  1. AgentPlanAndExecute中大模型收到了任务,分析任务,分解任务到多个子任务。之后,发起了一个执行子任务的行动,可以看出来发起子任务使用的是自然语言。

[AgentPlanAndExecute] [2025-10-14 00:43:46] {

“step_name”: “task”,

“raw_text”: “请转换视频到音频,输出到相同的文件夹下,文件夹是/workspace”

}

[AgentPlanAndExecute] [2025-10-14 00:43:49] [

{


},

{


},

{


}

]

  1. AgentReAct中大模型收到了子任务,思考并做出了正确行动,它找到了2个视频文件,同时识别其有效性。

[AgentReAct] [2025-10-14 00:43:49] {

“step_name”: “task”,

“raw_text”: “列出/workspace文件夹中的所有文件,特别是视频文件(如.mp4、.avi、.mov等),以确定可转换的目标。”

}

[AgentReAct] [2025-10-14 00:43:50] [

{


},

{


}

]

[AgentReAct] [2025-10-14 00:43:50] {

“step_name”: “observation”,

“raw_text”: [


]

}

[AgentReAct] [2025-10-14 00:43:52] [

{


},

{


}

]

  1. AgentPlanAndExecute中大模型会基于子任务结果重新规划多个子任务,之后,发起第一个子任务。

[AgentPlanAndExecute] [2025-10-14 00:43:52] {

“step_name”: “subtask_result”,

“raw_text”: “在/workspace文件夹中找到了以下视频文件: 1. T-ARA_LittleApple.mp4 (64MB) – 有效的视频文件 2. test-invalid.mp4 (0字节) – 无效的空文件

可转换的目标视频文件是T-ARA_LittleApple.mp4。”

}

[AgentPlanAndExecute] [2025-10-14 00:43:54] [

{


},

{


}

]

  1. AgentReAct执行子任务。

[AgentReAct] [2025-10-14 00:43:54] {

“step_name”: “task”,

“raw_text”: “将视频文件/workspace/T-ARA_LittleApple.mp4转换为音频文件,输出为/workspace/T-ARA_LittleApple_audio.mp3,确保不修改原文件。”

}

[AgentReAct] [2025-10-14 00:44:10] [

{


},

{


}

]

  1. AgentPlanAndExecute基于所有子任务的结果进行总结,生成最终结果。

[AgentPlanAndExecute] [2025-10-14 00:44:10] {

“step_name”: “subtask_result”,

“raw_text”: “视频文件已成功转换为音频文件。输出文件为/workspace/T-ARA_LittleApple_audio.mp3,大小为3.3MB,格式为MP3。原文件未被修改。”

}

[AgentPlanAndExecute] [2025-10-14 00:44:12] [

{


}

]

结语

AI-Agent的工程本质是”工作规则”和”工具”,任何人都可以定义”工作规则”,“工作规则”也可称之为”方法论”。用恰当的方法去解决特定场景的任务,它可以让目标的达成更加高效、更加准确。

多个AI-Agents的协作本质上是将”工作”各自聚焦,让专业的AI-Agent做对应专业的事,让各个AI-Agent能单独维护,实现原子操作也更加容易。

我们经常遇见的一些问题:

  • 单个AI-Agent的上下文窗口不够用。用多个AI-Agents去分工协作、分解任务,可以解决此问题。
  • 单个AI-Agent的思考时间太长,延迟太高。用多个AI-Agents能让上下文消息量变少,让任务更加专注。
  • 单个AI-Agent对复杂任务的表现不稳定,易产生”幻觉”。用多个AI-Agents去让擅长者做擅长事,分解后的各个任务目标更加聚焦,执行任务会更加高效和准确。

单个 AI-Agent 是一种从“AI工具”到“AI助手”的范式转移。

多个 AI-Agents 是一种从”万能助手”到”专业团队”的范式转变。

最近这几年,经济形式下行,IT行业面临经济周期波动与AI产业结构调整的双重压力,很多人都迫于无奈,要么被裁,要么被降薪苦不堪言。但我想说的是一个行业下行那必然会有上行行业,目前AI大模型的趋势就很不错,大家应该也经常听说大模型,也知道这是趋势,但苦于没有入门的契机,现在他来了,我在本平台找到了一个非常适合新手学习大模型的资源。大家想学习和了解大模型的,可以点击这里前往查看

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:Ai探索者,转载请注明出处:https://javaforall.net/242666.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月15日 下午10:52
下一篇 2026年3月15日 下午10:52


相关推荐

关注全栈程序员社区公众号