67 lines
1.8 KiB
Markdown
67 lines
1.8 KiB
Markdown
# Extension 目录
|
||
|
||
具体能力全部由 Extension 实现。Tool、页面、命令和事件监听器只是 Extension 内部组成,不是新的架构类型。
|
||
|
||
## 第一版
|
||
|
||
```text
|
||
src/extensions/
|
||
├── catalog.ts
|
||
├── shared/
|
||
│ ├── workspace/
|
||
│ ├── agent/
|
||
│ └── deepseek/
|
||
└── cli/
|
||
```
|
||
|
||
- `workspace`:Workspace、Conversation 和消息。
|
||
- `agent`:Run、上下文和 Agent 执行。
|
||
- `deepseek`:DeepSeek 模型接入。
|
||
- `cli`:终端输入、命令和展示。
|
||
|
||
第一版只静态装配这四个 Extension。
|
||
|
||
`catalog.ts` 集中列出所有跨 Extension 使用的 Extension ID、能力抓手和事实事件;它只保存字符串,不保存类型或运行逻辑。
|
||
|
||
当前协作链路:
|
||
|
||
```text
|
||
workspace -> 提供 workspace
|
||
deepseek -> 添加 model.providers
|
||
agent -> 使用二者并提供 agent
|
||
cli -> 调用 agent
|
||
```
|
||
|
||
## 协作
|
||
|
||
- 一个明确能力由 Extension 提供,调用方取得后直接调用。
|
||
- 模型、Tool 等多个实现通过同一扩展点汇集,由业务拥有者选择。
|
||
- 状态真正发生后再发布事件,监听器只做展示、日志或派生处理。
|
||
- Extension 只引用其他 Extension 的公开契约。
|
||
|
||
## 后续方向
|
||
|
||
后续公共能力大致包括:
|
||
|
||
```text
|
||
项目操作与 Git
|
||
自身进化
|
||
计划与多 Agent
|
||
记忆与知识
|
||
浏览器与本机控制
|
||
自动化
|
||
```
|
||
|
||
CLI、Web、Desktop 各自先保持一个产品 Extension。远程仓库、外部 Tool 协议、Keychain 等在实际接入时再决定是否独立。
|
||
|
||
## 何时拆分
|
||
|
||
只有出现以下真实边界时才创建新 Extension:
|
||
|
||
- 需要独立启停;
|
||
- 拥有独立的长期资源或数据;
|
||
- 存在可替换实现;
|
||
- 有明确产品或平台边界。
|
||
|
||
否则继续留在现有 Extension 内。目录只在能力开始实现时创建,不预建占位代码。
|