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

55 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 架构总览
## 目标
llm-to-agent 是个人项目,架构优先级是:
```text
简单易懂 > 容易修改 > 容易扩展 > 通用性
```
Runtime 内部长期只有:
```text
Kernel + Extensions
```
Kernel 管“Extension 怎样连接和运行”Extension 管“系统具体能做什么”。
## Kernel
Kernel 不认识 Workspace、Conversation、Run、Agent、模型或 Tool只提供所有 Extension 共同需要的机制:
- 生命周期与资源清理;
- 单个能力的提供与调用;
- 多个实现的注册与选择;
- 事实事件的发布与监听;
- 隔离存储、取消和错误传播;
- 副作用能力共用的调用接缝。
只有所有 Extension 都必须遵守的运行规则才进入 Kernel。
## Extensions
Extension 可以提供能力、调用其他能力、添加同类实现、发布或监听事实,并管理自己的数据与资源。
控制流程必须使用明确调用;事件只表示已经发生的事实,不能承担顺序、返回值、审批或回滚。
Extension 之间只依赖公开契约,不引用彼此的实现。
具体能力归属见 [Extension 目录](extensions.md)。
## Runtime 与产品
Runtime 持有唯一一套 Kernel、Extension 实例和本地数据。CLI、Web、Desktop 是不同产品入口,使用同一套能力和状态。
自进化阶段再增加 Runtime 外的 Supervisor用于版本切换、健康检查和失败回退。
## 长期约束
- 默认在现有 Extension 内增加普通代码,出现真实独立边界后再拆。
- 第一版静态装配,不建设插件平台、热加载或依赖图。
- 保持单进程、单用户和本地优先,直到真实需求要求改变。
- 不提前建设 Command Bus、Middleware、事件溯源或分布式状态。
- 新增 Kernel 机制必须有多个具体使用者。