如果你已经跟完前四篇,你会发现一个事实:👉Agent越做越复杂,越不像“一个人”,👉越像“一个团队”。这不是偶然,而是复杂系统的必然演化。单Agent的天花板在哪里?哪怕你已经有了:DAG执行器长期记忆并发调度单Agent依然有三个绕不过去的瓶颈:❌
如果你已经跟完前四篇,你会发现一个事实:
👉 Agent 越做越复杂,越不像“一个人”, 👉 越像“一个团队”。
这不是偶然,而是复杂系统的必然演化。
哪怕你已经有了:
单 Agent 依然有三个绕不过去的瓶颈:
一个 Agent 既要:
LLM 非常容易在长流程中“思维退化”。
同一个 Agent 同时在做:
这是架构层面的错误。
你很难说清楚:
“这个 Agent,到底负责什么?”
一旦需求变复杂,prompt 会迅速腐化。
真正可落地的多 Agent 系统,几乎都会收敛到这个模型:
┌─────────────┐
│ Supervisor │
│ (Planner) │
└──────┬──────┘
│
┌──────────┴───────────┐
│ │ │
┌───▼───┐ ┌───▼───┐ ┌───▼───┐
│Worker │ │Worker │ │Worker │
│ (IO) │ │ (IO) │ │(Logic)│
└───────┘ └───────┘ └───────┘
一句话概括:
Supervisor 负责“想清楚” Worker 负责“把事做完”
如果你有工程背景,会发现这个模型并不陌生:
| 系统 | 对应关系 |
|---|---|
| Kubernetes | Controller / Pod |
| 数据系统 | Coordinator / Executor |
| 编译器 | Planner / Pass |
| 数据库 | Optimizer / Operator |
Agent,只是 LLM 加持下的再一次复现。
我们先做一个非常重要的工程级抽象:
pub trait Agent {
async fn handle(&self, input: AgentInput) -> AgentOutput;
}
pub struct Supervisor {
llm: Arc<dyn LlmClient>,
}
职责只有三个:
pub struct Worker {
executor: Arc<AgentExecutor>,
}
职责非常纯粹:
pub struct SupervisorInput {
pub goal: String,
pub context: Vec<Observation>,
}
pub struct SupervisorPlan {
pub graph: TaskGraph,
pub assignment: HashMap<TaskId, WorkerId>,
}
👉 注意关键词:assignment(分配)
这是一个非常关键、但反直觉的点。
❌ Worker 越“聪明”,系统越不稳定 ✅ Worker 越“愚钝”,系统越可靠
impl Agent for Worker {
async fn handle(&self, input: AgentInput) -> AgentOutput {
self.executor.run_task(input.task).await
}
}
📌 不要让 Worker 再去问 LLM“我该怎么做?”
一旦 Worker 无状态,你就可以:
pub struct AgentPool {
workers: Vec<Worker>,
semaphore: Semaphore,
}
let worker = pool.acquire().await;
let result = worker.handle(task).await;
pool.release(worker);
这一步,你已经在写一个 Agent Runtime 了。
在真实系统里,Agent 不应该“互相调用方法”。
而是通过结构化消息:
pub enum AgentMessage {
Task(Task),
Result(TaskResult),
Control(ControlSignal),
}
你可以用:
📌 通信协议 > Prompt 技巧
Worker 报告失败:
{
"task": "C",
"status": "failed",
"error": "timeout"
}
Supervisor 决定:
match failure {
Timeout => retry_subgraph(),
RateLimit => reduce_concurrency(),
LogicError => replan(),
}
👉 “想怎么办”和“怎么做”彻底解耦
现在记忆的层级变成了:
Supervisor 可以学到:
这一步,你已经进入:
Agent ≈ 自优化系统
如果你把这五篇能力叠加:
1. Agent Loop 2. Executor + 并发 3. 长期记忆 4. DAG 调度 5. 多 Agent 协作
你现在拥有的,实际上是:
一个 LLM 驱动的任务操作系统(Agent OS)
而不是“玩 Prompt 的脚本”。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!