Skip to main content

Claude Code 设计模式与 LLM 思维

本文档从设计思路和 LLM 角度总结各章节的核心模式,每条不超过100字。


S01: Agent Loop - 为什么需要循环?

LLM 是单次推理引擎,但复杂任务需要多步执行。设计思路:让 LLM 像人类一样"思考→行动→观察→再思考",通过循环将单次响应串联成完整任务链。关键是将 LLM 的工具调用结果作为下一轮的输入,形成反馈闭环。

S02: Tool Dispatch - 如何让 LLM 扩展能力?

LLM 本身不能执行代码,只能"调用"抽象能力。设计思路:用字典映射将 LLM 的文本决策转换为具体函数调用。核心洞察:工具定义是 LLM 的"手",工具分发是"神经连接",解耦设计让添加新能力不影响核心逻辑。

S03: Todo Tracking - 为什么需要状态外置?

LLM 的上下文是临时的,压缩后状态会丢失。设计思路:将任务状态存储在独立的数据结构中,让 LLM 通过工具读写状态,而非记忆状态。核心洞察:LLM 应专注于"做什么",状态管理交给专门的结构,实现关注点分离。

S04: Subagent - 何时创建新的推理实例?

复杂子任务会污染主对话上下文。设计思路:创建"临时 LLM 实例"在空白上下文中处理子任务,完成后只返回摘要。核心洞察:上下文隔离是 LLM 系统的关键,用"进程隔离换取上下文隔离",让主对话保持清洁。

S05: Lazy Loading - 如何控制 Prompt 膨胀?

将所有技能放入系统提示词会快速消耗 token。设计思路:两层注入——启动时只注入技能目录(廉价),使用时才加载完整内容(按需)。核心洞察:LLM 的"记忆"是昂贵的,应该像数据库索引一样,先给目录再给详情。

S06: Context Compression - LLM 如何"遗忘"?

LLM 的上下文窗口有限,无限增长会导致成本爆炸。设计思路:渐进式压缩——微压缩清理冗余、自动压缩生成摘要、手动压缩主动管理。核心洞察:战略性遗忘是 LLM 长期运行的关键,完整对话存盘,只保留摘要在上下文中。

S07: Persistent State - 状态为何要独立于对话?

任务依赖关系跨越多次对话,依赖 LLM 记忆不可靠。设计思路:将任务状态持久化到文件系统,让 LLM 通过工具 API 读写状态。核心洞察:LLM 应该是"无状态的计算层",状态存储交给专门系统,解耦后状态可压缩、可恢复。

S08: Concurrency - LLM 调用如何不阻塞?

LLM API 调用和命令执行都是 I/O 密集型,串行执行效率低。设计思路:后台线程执行长时间任务,主线程继续响应,完成后通过通知队列注入结果。核心洞察:LLM 等待结果时可以做其他事,并行执行让多 LLM 实例同时工作。

S09: Multi-Agent - 为什么需要多个 LLM 实例?

单个 LLM 难以同时扮演多个专业角色。设计思路:每个角色一个独立 LLM 实例,通过消息总线异步协作。核心洞察:团队协作的核心是"通信",而非"计算"。每个 Agent 有自己的上下文、工具、角色,通过消息解耦实现专业分工。

S10: Protocol - 异步通信如何关联请求响应?

多 Agent 异步通信时,请求和响应需要匹配。设计思路:用 request_id 作为关联键,用追踪器存储请求状态,实现异步请求-响应模式。核心洞察:分布式系统的经典模式同样适用于 LLM Agent,关键是将"控制流"和"数据流"分离。

S11: Autonomy - Agent 如何主动工作?

被动式 Agent 需要人类持续输入指令。设计思路:双阶段循环——WORK 阶段主动执行任务,IDLE 阶段轮询寻找新工作。核心洞察:自主性 = 主动寻找任务 + 自动认领任务。Agent 从"等待指令"进化为"自我驱动",需要任务看板和轮询机制。

S12: Isolation - 如何实现真正的并行工作?

多 Agent 在同一目录工作会互相干扰。设计思路:用 Git worktree 为每个任务创建独立工作目录,实现物理层面的隔离。核心洞察:隔离是并行工作的前提。s11 实现了逻辑隔离(不同 Agent),s12 实现了物理隔离(不同目录),从根本上解决冲突。


核心设计原则

1. 关注点分离

LLM 负责"推理",状态存储负责"记忆",工具负责"执行",通信负责"协调"。每层有明确的职责边界。

2. 上下文管理

上下文是 LLM 系统最昂贵的资源。通过隔离(subagent)、压缩(compact)、外置(state)来优化使用。

3. 渐进式增强

从简单循环开始,逐步添加工具分发、状态管理、多 Agent 协作。每个阶段解决一个具体问题。

4. 经典模式复用

工具分发(路由模式)、异步通信(request-response)、状态机(生命周期管理)都是经典软件模式在 LLM 系统中的再应用。

5. 战略性遗忘

长期运行的 LLM 系统必须学会"遗忘"。完整信息持久化存储,上下文只保留当前需要的摘要。


LLM 系统设计的三层理解

┌─────────────────────────────────────────────────────────────┐
│ 应用层 (What) │
│ 用户任务拆解 → 多 Agent 协作 → 结果汇总 │
├─────────────────────────────────────────────────────────────┤
│ 抽象层 (How) │
│ 生命周期管理 · 异步通信 · 状态持久化 · 并发执行 │
├─────────────────────────────────────────────────────────────┤
│ LLM 层 (Why) │
│ 单次推理 → 循环执行 → 上下文管理 → 工具调用 → 多实例协作 │
└─────────────────────────────────────────────────────────────┘

核心洞察:LLM 系统的设计本质是——如何让一个"单次推理引擎"变成一个"可持续工作的智能体"。答案是:用循环串联推理,用工具扩展能力,用状态跨越时间,用多实例实现协作。