llm-to-agent/docs/architecture.md
2026-07-24 17:36:02 +08:00

1.8 KiB
Raw Blame History

架构总览

目标

llm-to-agent 是个人项目,架构优先级是:

简单易懂 > 容易修改 > 容易扩展 > 通用性

Runtime 内部长期只有:

Kernel + Extensions

Kernel 管“Extension 怎样连接和运行”Extension 管“系统具体能做什么”。

Kernel

Kernel 不认识 Workspace、Conversation、Run、Agent、模型或 Tool只提供所有 Extension 共同需要的机制:

  • 生命周期与资源清理;
  • 单个能力的提供与调用;
  • 多个实现的注册与选择;
  • 事实事件的发布与监听;
  • 隔离存储、取消和错误传播;
  • 副作用能力共用的调用接缝。

只有所有 Extension 都必须遵守的运行规则才进入 Kernel。

Extensions

Extension 可以提供能力、调用其他能力、添加同类实现、发布或监听事实,并管理自己的数据与资源。

控制流程必须使用明确调用;事件只表示已经发生的事实,不能承担顺序、返回值、审批或回滚。

Extension 之间只依赖公开契约,不引用彼此的实现。

具体能力归属见 Extension 目录

Runtime 与产品

Runtime 持有唯一一套 Kernel、Extension 实例和本地数据。CLI、Web、Desktop 是不同产品入口,使用同一套能力和状态。

自进化阶段再增加 Runtime 外的 Supervisor用于版本切换、健康检查和失败回退。

长期约束

  • 默认在现有 Extension 内增加普通代码,出现真实独立边界后再拆。
  • 第一版静态装配,不建设插件平台、热加载或依赖图。
  • 保持单进程、单用户和本地优先,直到真实需求要求改变。
  • 不提前建设 Command Bus、Middleware、事件溯源或分布式状态。
  • 新增 Kernel 机制必须有多个具体使用者。