Prompt Chaining 链式调用

Chaining
Chaining

Prompt Chaining 的实现思路比较简单:上一个 LLM 的输出作为下一个 LLM 的输入。这样的 agentic 范式适合那些可以被分解成 sequential assembly line 的任务。

然而这样的方法也有局限性:这样的任务也依赖于人工对任务进行拆解。


Routing 路由转发

Routing
Routing

顾名思义,Routing Flow 下,一个小型的 LLM 负责解析用户的指令,判断指令所属的任务,然后转发给对应的 LLM 进行处理。

这样做的一个好处就是可以控制 API 调用成本。例如用小模型进行解析工作,如果指令比较简单,则转发给小模型进行指令处理;否则把复杂指令交给 API 调用费更贵的大模型进行进一步的处理。


Parallelization 并行处理

Parallel
Parallel

A task is broken down into independent subtasks that are processed simultaneously by multiple LLMs, with their outputs being aggregated.

  • RAG with Query Decomposition
  • 分析复杂文档

Reflection 生成并反思

Reflection
Reflection

Reflection 是让 LLM 重新评判自己生成的内容是否满足要求,如果不满足,则继续生成(修正)。这种范式已经出现在诸如 VSCode Copilot 等产品上

Tool Use 工具使用

在我看来,Tool Use 只是 Reflection 的一种形式:评判的过程换成了外部工具的调用。

Tool Use
Tool Use

Planning

Planning
Planning

中央 LLM 将任务拆解为多个子任务,然后转发给专门的 LLM 进行处理并汇总。和 Routing 很像,但区别在于 Routing 直接转发一整个任务,而 Planning 先拆分大任务,再将小人物转发处理。


Multi-Agent

Manager 形式

Multi-Agent (Manager)
Multi-Agent (Manager)

Manager 形式实现的 MultiAgent 分多个角色:manager 和 worker. 每个 worker 具有特定领域的专业知识和特定工具的访问权限,manager 则可以分析任务进展,指定 worker 进行任务协作。

Swarm 形式

Multi-Agent (Swarm)
Multi-Agent (Swarm)

Swarm 形式实现的 Multi Agent 相比于 Manager 形式来说,去掉了负责协调的 central manager,直接让 worker 之间自行合作。