@louloulinx/metagpt 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +23 -0
- package/.prettierrc +7 -0
- package/LICENSE +21 -0
- package/README-CN.md +754 -0
- package/README.md +238 -0
- package/bun.lock +1023 -0
- package/doc/TutorialAssistant.md +114 -0
- package/doc/VercelLLMProvider.md +164 -0
- package/eslint.config.js +55 -0
- package/examples/data-interpreter-example.ts +173 -0
- package/examples/qwen-direct-example.ts +60 -0
- package/examples/qwen-example.ts +62 -0
- package/examples/tutorial-assistant-example.ts +97 -0
- package/jest.config.ts +22 -0
- package/output/tutorials/Go/350/257/255/350/250/200/347/274/226/347/250/213/346/225/231/347/250/213_2025-02-25T09-35-15-436Z.md +2208 -0
- package/output/tutorials/Rust/346/225/231/347/250/213_2025-02-25T08-27-27-632Z.md +1967 -0
- package/output/tutorials//345/246/202/344/275/225/344/275/277/347/224/250TypeScript/345/274/200/345/217/221Node.js/345/272/224/347/224/250_2025-02-25T08-14-39-605Z.md +1721 -0
- package/output/tutorials//346/225/260/345/255/227/347/273/217/346/265/216/345/255/246/346/225/231/347/250/213_2025-02-25T10-45-03-605Z.md +902 -0
- package/output/tutorials//346/232/250/345/215/227/345/244/247/345/255/246/346/225/260/345/255/227/347/273/217/346/265/216/345/255/246/345/244/215/350/257/225/350/265/204/346/226/231_2025-02-25T11-16-59-133Z.md +719 -0
- package/package.json +58 -0
- package/plan-cn.md +321 -0
- package/plan.md +154 -0
- package/src/actions/analyze-task.ts +65 -0
- package/src/actions/base-action.ts +103 -0
- package/src/actions/di/execute-nb-code.ts +247 -0
- package/src/actions/di/write-analysis-code.ts +234 -0
- package/src/actions/write-tutorial.ts +232 -0
- package/src/config/browser.ts +33 -0
- package/src/config/config.ts +345 -0
- package/src/config/embedding.ts +26 -0
- package/src/config/llm.ts +36 -0
- package/src/config/mermaid.ts +37 -0
- package/src/config/omniparse.ts +25 -0
- package/src/config/redis.ts +34 -0
- package/src/config/s3.ts +33 -0
- package/src/config/search.ts +30 -0
- package/src/config/workspace.ts +20 -0
- package/src/index.ts +40 -0
- package/src/management/team.ts +168 -0
- package/src/memory/longterm.ts +218 -0
- package/src/memory/manager.ts +160 -0
- package/src/memory/types.ts +100 -0
- package/src/memory/working.ts +154 -0
- package/src/monitoring/system.ts +413 -0
- package/src/monitoring/types.ts +230 -0
- package/src/plugin/manager.ts +79 -0
- package/src/plugin/types.ts +114 -0
- package/src/provider/vercel-llm.ts +314 -0
- package/src/rag/base-rag.ts +194 -0
- package/src/rag/document-qa.ts +102 -0
- package/src/roles/base-role.ts +155 -0
- package/src/roles/data-interpreter.ts +360 -0
- package/src/roles/engineer.ts +1 -0
- package/src/roles/tutorial-assistant.ts +217 -0
- package/src/skills/base-skill.ts +144 -0
- package/src/skills/code-review.ts +120 -0
- package/src/tools/base-tool.ts +155 -0
- package/src/tools/file-system.ts +204 -0
- package/src/tools/tool-recommend.d.ts +14 -0
- package/src/tools/tool-recommend.ts +31 -0
- package/src/types/action.ts +38 -0
- package/src/types/config.ts +129 -0
- package/src/types/document.ts +354 -0
- package/src/types/llm.ts +64 -0
- package/src/types/memory.ts +36 -0
- package/src/types/message.ts +193 -0
- package/src/types/rag.ts +86 -0
- package/src/types/role.ts +67 -0
- package/src/types/skill.ts +71 -0
- package/src/types/task.ts +32 -0
- package/src/types/team.ts +55 -0
- package/src/types/tool.ts +77 -0
- package/src/types/workflow.ts +133 -0
- package/src/utils/common.ts +73 -0
- package/src/utils/yaml.ts +67 -0
- package/src/websocket/browser-client.ts +187 -0
- package/src/websocket/client.ts +186 -0
- package/src/websocket/server.ts +169 -0
- package/src/websocket/types.ts +125 -0
- package/src/workflow/executor.ts +193 -0
- package/src/workflow/executors/action-executor.ts +72 -0
- package/src/workflow/executors/condition-executor.ts +118 -0
- package/src/workflow/executors/parallel-executor.ts +201 -0
- package/src/workflow/executors/role-executor.ts +76 -0
- package/src/workflow/executors/sequence-executor.ts +196 -0
- package/tests/actions.test.ts +105 -0
- package/tests/benchmark/performance.test.ts +147 -0
- package/tests/config/config.test.ts +115 -0
- package/tests/config.test.ts +106 -0
- package/tests/e2e/setup.ts +74 -0
- package/tests/e2e/workflow.test.ts +88 -0
- package/tests/llm.test.ts +84 -0
- package/tests/memory/memory.test.ts +164 -0
- package/tests/memory.test.ts +63 -0
- package/tests/monitoring/monitoring.test.ts +225 -0
- package/tests/plugin/plugin.test.ts +183 -0
- package/tests/provider/bailian-llm.test.ts +98 -0
- package/tests/rag.test.ts +162 -0
- package/tests/roles.test.ts +88 -0
- package/tests/skills.test.ts +166 -0
- package/tests/team.test.ts +143 -0
- package/tests/tools.test.ts +170 -0
- package/tests/types/document.test.ts +181 -0
- package/tests/types/message.test.ts +122 -0
- package/tests/utils/yaml.test.ts +110 -0
- package/tests/utils.test.ts +74 -0
- package/tests/websocket/browser-client.test.ts +1 -0
- package/tests/websocket/websocket.test.ts +42 -0
- package/tests/workflow/parallel-executor.test.ts +224 -0
- package/tests/workflow/sequence-executor.test.ts +207 -0
- package/tests/workflow.test.ts +290 -0
- package/tsconfig.json +27 -0
- package/typedoc.json +25 -0
package/README-CN.md
ADDED
@@ -0,0 +1,754 @@
|
|
1
|
+
# MetaGPT.TS
|
2
|
+
|
3
|
+
|
4
|
+
## 中文说明
|
5
|
+
|
6
|
+
> MetaGPT.TS是一个基于TypeScript的多智能体协作框架,将大语言模型转化为高效能智能体,构建可协作的软件开发团队。
|
7
|
+
|
8
|
+
### 项目特点
|
9
|
+
- **智能体协作**:内置产品经理、架构师、工程师等多种角色智能体,通过标准化流程协作完成复杂任务
|
10
|
+
- **全流程支持**:从需求分析、系统设计到代码实现的全流程智能支持
|
11
|
+
- **高性能架构**:基于现代TypeScript技术栈,提供高效、类型安全的开发体验
|
12
|
+
- **可扩展性**:支持自定义角色、动作和工作流,灵活适应不同应用场景
|
13
|
+
|
14
|
+
### 快速开始
|
15
|
+
```bash
|
16
|
+
# 使用 bun 安装
|
17
|
+
bun install @louloulin/metagpt
|
18
|
+
|
19
|
+
# 或使用 npm
|
20
|
+
npm install @louloulin/metagpt
|
21
|
+
```
|
22
|
+
|
23
|
+
### 基础配置
|
24
|
+
```typescript
|
25
|
+
// 配置LLM提供商
|
26
|
+
import { config } from " @louloulin/metagpt/config";
|
27
|
+
|
28
|
+
config.OPENAI_API_KEY = "sk-..."; // 你的API密钥
|
29
|
+
```
|
30
|
+
|
31
|
+
### 简单示例
|
32
|
+
```typescript
|
33
|
+
import { Team, ProductManager, Architect, Engineer } from " @louloulin/metagpt/roles";
|
34
|
+
|
35
|
+
// 创建团队
|
36
|
+
const team = new Team();
|
37
|
+
team.hire([new ProductManager(), new Architect(), new Engineer()]);
|
38
|
+
|
39
|
+
// 执行项目
|
40
|
+
await team.runProject("实现一个简单的待办事项管理应用");
|
41
|
+
```
|
42
|
+
|
43
|
+
---
|
44
|
+
|
45
|
+
## Introduction
|
46
|
+
|
47
|
+
> MetaGPT TypeScript is a multi-agent collaboration framework that transforms LLMs into efficient agents, building a collaborative software development team.
|
48
|
+
|
49
|
+
> 将大语言模型转化为高效能智能体,构建可协作的软件开发团队
|
50
|
+
|
51
|
+
**MetaGPT TypeScript 版** 是一个基于现代 TypeScript 技术栈的多智能体框架,主要特性包括:
|
52
|
+
|
53
|
+
## 项目简介
|
54
|
+
- **智能体即软件**:通过角色定义将LLM转化为可执行特定任务的智能体
|
55
|
+
- **标准化协作**:内置软件公司标准操作流程(SOP),实现智能体间高效协作
|
56
|
+
- **全栈式架构**:包含需求分析、系统设计、代码实现、测试部署的全生命周期支持
|
57
|
+
|
58
|
+
## 核心特性
|
59
|
+
- 多智能体协作系统
|
60
|
+
- 支持 RAG 的增强型记忆机制
|
61
|
+
- 可观测的智能体状态管理
|
62
|
+
- 可视化的工作流追踪
|
63
|
+
- 企业级扩展能力
|
64
|
+
- 完整的类型安全保证
|
65
|
+
|
66
|
+
## 核心概念
|
67
|
+
- **角色 (Role)**:具备特定技能的任务执行单元(产品经理/架构师/工程师)
|
68
|
+
- **动作 (Action)**:智能体的原子化操作单元
|
69
|
+
- **团队 (Team)**:多角色协作的智能体组织
|
70
|
+
- **记忆 (Memory)**:支持向量检索的长期记忆存储
|
71
|
+
|
72
|
+
## 应用场景
|
73
|
+
- 智能体辅助开发
|
74
|
+
- 自动化工作流编排
|
75
|
+
- 复杂任务分解执行
|
76
|
+
- AI团队模拟与优化
|
77
|
+
- 企业级应用智能化改造
|
78
|
+
|
79
|
+
[](https://codespaces.new/geekan/MetaGPT)
|
80
|
+
|
81
|
+
|
82
|
+
### 核心功能特性
|
83
|
+
1. **多角色协作** - 预置产品经理/架构师/工程师等角色
|
84
|
+
2. **自动工作流** - 支持需求分析/系统设计/代码实现全流程
|
85
|
+
3. **类型安全** - 严格的TypeScript类型校验
|
86
|
+
4. **响应式架构** - 基于RxJS的消息管道处理
|
87
|
+
5. **可观测性** - 内置完整的日志和监控支持
|
88
|
+
|
89
|
+
### 支持模型
|
90
|
+
| 提供商 | 支持版本 | 配置项名称 |
|
91
|
+
|-----------|-----------------------|-------------------|
|
92
|
+
| OpenAI | gpt-4/gpt-3.5-turbo | OPENAI_API_KEY |
|
93
|
+
| Anthropic | Claude-2 | ANTHROPIC_API_KEY |
|
94
|
+
| Azure | GPT-4 | AZURE_API_KEY |
|
95
|
+
|
96
|
+
|
97
|
+
## 1. 项目结构 ✅
|
98
|
+
|
99
|
+
```
|
100
|
+
metagpt/
|
101
|
+
├── src/
|
102
|
+
│ ├── actions/ # 动作定义和实现 ✅
|
103
|
+
│ ├── roles/ # 角色定义和行为 ✅
|
104
|
+
│ ├── utils/ # 工具函数和辅助类 ✅
|
105
|
+
│ ├── config/ # 配置管理 ✅
|
106
|
+
│ ├── memory/ # 记忆和状态管理 ✅
|
107
|
+
│ ├── provider/ # LLM提供商集成 ✅
|
108
|
+
│ ├── tools/ # 外部工具集成 ✅
|
109
|
+
│ ├── skills/ # 技能实现 ✅
|
110
|
+
│ ├── rag/ # 检索增强生成 ✅
|
111
|
+
│ ├── document/ # 文档处理和管理 ✅
|
112
|
+
│ └── types/ # TypeScript类型定义 ✅
|
113
|
+
├── tests/ # 测试文件 ✅
|
114
|
+
├── examples/ # 示例实现
|
115
|
+
└── package.json # 项目依赖和脚本 ✅
|
116
|
+
```
|
117
|
+
|
118
|
+
### 环境配置
|
119
|
+
### 环境变量配置
|
120
|
+
|
121
|
+
MetaGPT.TS 支持通过 `.env` 文件配置环境变量,便于管理API密钥和其他配置项。
|
122
|
+
|
123
|
+
1. 在项目根目录创建 `.env` 文件:
|
124
|
+
|
125
|
+
```
|
126
|
+
# LLM 提供商配置
|
127
|
+
OPENAI_API_KEY=sk-your-openai-api-key
|
128
|
+
OPENAI_API_MODEL=gpt-4-turbo
|
129
|
+
OPENAI_API_BASE=https://api.openai.com/v1
|
130
|
+
|
131
|
+
# 可选的其他 LLM 提供商
|
132
|
+
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
133
|
+
AZURE_API_KEY=your-azure-api-key
|
134
|
+
AZURE_API_BASE=your-azure-endpoint
|
135
|
+
|
136
|
+
# 向量存储配置
|
137
|
+
QDRANT_URL=http://localhost:6333
|
138
|
+
QDRANT_API_KEY=your-qdrant-api-key
|
139
|
+
|
140
|
+
# 日志配置
|
141
|
+
LOG_LEVEL=info # debug, info, warn, error
|
142
|
+
|
143
|
+
# 应用设置
|
144
|
+
MAX_TOKENS=4000
|
145
|
+
TEMPERATURE=0.7
|
146
|
+
PROJECT_ROOT=./workspace
|
147
|
+
```
|
148
|
+
|
149
|
+
2. 或在代码中直接配置(不推荐):
|
150
|
+
|
151
|
+
```typescript
|
152
|
+
// 配置LLM提供商(以OpenAI为例)
|
153
|
+
import { config } from "metagpt/config";
|
154
|
+
|
155
|
+
config.OPENAI_API_KEY = "sk-..."; // 你的API密钥
|
156
|
+
config.OPENAI_API_MODEL = "gpt-4-1106-preview"; // 模型版本
|
157
|
+
```
|
158
|
+
|
159
|
+
### 基础使用示例(待实现)
|
160
|
+
```typescript
|
161
|
+
import { Team, ProductManager, Architect, Engineer } from "@louloulin/metagpt/roles";
|
162
|
+
import { Message } from "@louloulin/metagpt/types";
|
163
|
+
|
164
|
+
async function startup(idea: string) {
|
165
|
+
// 初始化团队
|
166
|
+
const company = new Team();
|
167
|
+
|
168
|
+
// 组建团队
|
169
|
+
company.hire([
|
170
|
+
new ProductManager(),
|
171
|
+
new Architect(),
|
172
|
+
new Engineer(),
|
173
|
+
]);
|
174
|
+
|
175
|
+
// 设置初始参数
|
176
|
+
company.invest(3.0); // 设置预算(虚拟货币)
|
177
|
+
|
178
|
+
// 运行项目
|
179
|
+
const messages: Message[] = await company.runProject(
|
180
|
+
idea,
|
181
|
+
{ maxRounds: 5 }
|
182
|
+
);
|
183
|
+
|
184
|
+
return messages;
|
185
|
+
}
|
186
|
+
|
187
|
+
// 执行示例
|
188
|
+
await startup("实现一个命令行黑白棋游戏");
|
189
|
+
```
|
190
|
+
|
191
|
+
|
192
|
+
### 环境配置
|
193
|
+
|
194
|
+
MetaGPT.TS 支持通过 `.env` 文件配置环境变量,便于管理API密钥和其他配置项。
|
195
|
+
|
196
|
+
1. 在项目根目录创建 `.env` 文件:
|
197
|
+
|
198
|
+
```
|
199
|
+
# LLM 提供商配置
|
200
|
+
OPENAI_API_KEY=sk-your-openai-api-key
|
201
|
+
OPENAI_API_MODEL=gpt-4-turbo
|
202
|
+
OPENAI_API_BASE=https://api.openai.com/v1
|
203
|
+
|
204
|
+
# 可选的其他 LLM 提供商
|
205
|
+
ANTHROPIC_API_KEY=sk-ant-your-anthropic-key
|
206
|
+
AZURE_API_KEY=your-azure-api-key
|
207
|
+
AZURE_API_BASE=your-azure-endpoint
|
208
|
+
|
209
|
+
# 向量存储配置
|
210
|
+
QDRANT_URL=http://localhost:6333
|
211
|
+
QDRANT_API_KEY=your-qdrant-api-key
|
212
|
+
|
213
|
+
# 日志配置
|
214
|
+
LOG_LEVEL=info # debug, info, warn, error
|
215
|
+
|
216
|
+
# 应用设置
|
217
|
+
MAX_TOKENS=4000
|
218
|
+
TEMPERATURE=0.7
|
219
|
+
PROJECT_ROOT=./workspace
|
220
|
+
```
|
221
|
+
|
222
|
+
2. 或在代码中直接配置(不推荐):
|
223
|
+
|
224
|
+
```typescript
|
225
|
+
// 配置LLM提供商(以OpenAI为例)
|
226
|
+
import { config } from "metagpt/config";
|
227
|
+
|
228
|
+
config.OPENAI_API_KEY = "sk-..."; // 你的API密钥
|
229
|
+
config.OPENAI_API_MODEL = "gpt-4-1106-preview"; // 模型版本
|
230
|
+
```
|
231
|
+
|
232
|
+
### 基础使用示例(待实现)
|
233
|
+
```typescript
|
234
|
+
import { Team, ProductManager, Architect, Engineer } from "@louloulin/metagpt/roles";
|
235
|
+
import { Message } from "@louloulin/metagpt/types";
|
236
|
+
|
237
|
+
async function startup(idea: string) {
|
238
|
+
// 初始化团队
|
239
|
+
const company = new Team();
|
240
|
+
|
241
|
+
// 组建团队
|
242
|
+
company.hire([
|
243
|
+
new ProductManager(),
|
244
|
+
new Architect(),
|
245
|
+
new Engineer(),
|
246
|
+
]);
|
247
|
+
|
248
|
+
// 设置初始参数
|
249
|
+
company.invest(3.0); // 设置预算(虚拟货币)
|
250
|
+
|
251
|
+
// 运行项目
|
252
|
+
const messages: Message[] = await company.runProject(
|
253
|
+
idea,
|
254
|
+
{ maxRounds: 5 }
|
255
|
+
);
|
256
|
+
|
257
|
+
return messages;
|
258
|
+
}
|
259
|
+
|
260
|
+
// 执行示例
|
261
|
+
await startup("实现一个命令行黑白棋游戏");
|
262
|
+
```
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
|
268
|
+
## 2. 技术选型 ✅
|
269
|
+
|
270
|
+
### 核心技术栈 ✅
|
271
|
+
1. Runtime & Package Manager
|
272
|
+
- Bun.js: 高性能 JavaScript runtime,内置包管理器 ✅
|
273
|
+
- Node.js 18+ 兼容性支持 ✅
|
274
|
+
|
275
|
+
2. 开发语言与框架
|
276
|
+
- TypeScript 5.0+:强类型支持 ✅
|
277
|
+
- Zod:运行时类型验证 ✅
|
278
|
+
- XState:状态机管理 ✅
|
279
|
+
- RxJS:响应式编程 ✅
|
280
|
+
|
281
|
+
3. 测试与开发工具
|
282
|
+
- bun:test:单元测试框架 ✅
|
283
|
+
- ESLint + Prettier:代码规范 ✅
|
284
|
+
- TypeDoc:API 文档生成 ✅
|
285
|
+
|
286
|
+
4. 核心依赖
|
287
|
+
- Vercel AI SDK ✅
|
288
|
+
- Qdrant Node Client:向量存储 ✅
|
289
|
+
- Winston:日志管理 ✅
|
290
|
+
|
291
|
+
### 技术特性
|
292
|
+
1. 状态管理
|
293
|
+
- 使用 XState 实现角色状态机 ✅
|
294
|
+
- RxJS 处理异步消息流 ✅
|
295
|
+
- 响应式的内存管理 ✅
|
296
|
+
|
297
|
+
2. 类型系统
|
298
|
+
- 严格的 TypeScript 类型 ✅
|
299
|
+
- Zod schema 验证 ✅
|
300
|
+
- 运行时类型检查 ✅
|
301
|
+
|
302
|
+
3. 异步处理
|
303
|
+
- 基于 Promise 和 async/await ✅
|
304
|
+
- RxJS Observable 消息流 ✅
|
305
|
+
- 事件驱动架构 ✅
|
306
|
+
|
307
|
+
## 3. 核心接口设计 ✅
|
308
|
+
|
309
|
+
### 基础消息系统 ✅
|
310
|
+
```typescript
|
311
|
+
interface Message {
|
312
|
+
id: string;
|
313
|
+
content: string;
|
314
|
+
role: string;
|
315
|
+
causedBy: string;
|
316
|
+
sentFrom: string;
|
317
|
+
sendTo: Set<string>;
|
318
|
+
instructContent?: any;
|
319
|
+
}
|
320
|
+
|
321
|
+
interface MessageQueue {
|
322
|
+
push(msg: Message): void;
|
323
|
+
pop(): Promise<Message | null>;
|
324
|
+
popAll(): Promise<Message[]>;
|
325
|
+
empty(): boolean;
|
326
|
+
}
|
327
|
+
```
|
328
|
+
|
329
|
+
### 角色系统 ✅
|
330
|
+
```typescript
|
331
|
+
interface Role {
|
332
|
+
name: string;
|
333
|
+
profile: string;
|
334
|
+
goal: string;
|
335
|
+
constraints: string;
|
336
|
+
actions: Action[];
|
337
|
+
|
338
|
+
// 核心方法
|
339
|
+
observe(): Promise<number>;
|
340
|
+
think(): Promise<boolean>;
|
341
|
+
act(): Promise<Message>;
|
342
|
+
react(): Promise<Message>;
|
343
|
+
|
344
|
+
// 状态管理
|
345
|
+
state: number;
|
346
|
+
context: RoleContext;
|
347
|
+
}
|
348
|
+
|
349
|
+
interface RoleContext {
|
350
|
+
memory: Memory;
|
351
|
+
workingMemory: Memory;
|
352
|
+
state: number;
|
353
|
+
todo: Action | null;
|
354
|
+
watch: Set<string>;
|
355
|
+
reactMode: RoleReactMode;
|
356
|
+
}
|
357
|
+
```
|
358
|
+
|
359
|
+
### 动作系统 ✅
|
360
|
+
```typescript
|
361
|
+
interface Action {
|
362
|
+
name: string;
|
363
|
+
context: ActionContext;
|
364
|
+
llm: LLMProvider;
|
365
|
+
|
366
|
+
run(): Promise<ActionOutput>;
|
367
|
+
handleException(error: Error): Promise<void>;
|
368
|
+
}
|
369
|
+
|
370
|
+
interface ActionOutput {
|
371
|
+
content: string;
|
372
|
+
status: ActionStatus;
|
373
|
+
instruct_content?: any;
|
374
|
+
}
|
375
|
+
```
|
376
|
+
|
377
|
+
### 状态机定义 ✅
|
378
|
+
```typescript
|
379
|
+
interface RoleStateMachine {
|
380
|
+
states: {
|
381
|
+
idle: {};
|
382
|
+
observing: {};
|
383
|
+
thinking: {};
|
384
|
+
acting: {};
|
385
|
+
reacting: {};
|
386
|
+
};
|
387
|
+
|
388
|
+
events: {
|
389
|
+
OBSERVE: {};
|
390
|
+
THINK: {};
|
391
|
+
ACT: {};
|
392
|
+
REACT: {};
|
393
|
+
COMPLETE: {};
|
394
|
+
};
|
395
|
+
}
|
396
|
+
```
|
397
|
+
|
398
|
+
## 4. 核心组件迁移优先级
|
399
|
+
|
400
|
+
### 第一阶段:基础框架 ✅
|
401
|
+
1. 基本项目设置 ✅
|
402
|
+
- 初始化TypeScript项目 ✅
|
403
|
+
- 设置开发环境(ESLint, Prettier, Jest) ✅
|
404
|
+
- 定义基础接口和类型 ✅
|
405
|
+
- 实现核心工具类 ✅
|
406
|
+
|
407
|
+
2. 基础组件 ✅
|
408
|
+
- 上下文和配置管理 ✅
|
409
|
+
- 基本LLM提供商集成 ✅
|
410
|
+
- 文档和记忆管理基础 ✅
|
411
|
+
|
412
|
+
### 第二阶段:核心功能 ✅
|
413
|
+
1. 角色系统 ✅
|
414
|
+
- 基础角色类实现 ✅
|
415
|
+
- 角色生命周期管理 ✅
|
416
|
+
- 消息处理系统 ✅
|
417
|
+
|
418
|
+
2. 动作系统 ✅
|
419
|
+
- 动作基类 ✅
|
420
|
+
- 动作执行框架 ✅
|
421
|
+
- 消息和状态管理 ✅
|
422
|
+
|
423
|
+
3. 记忆系统 ✅
|
424
|
+
- 工作记忆实现 ✅
|
425
|
+
- 长期记忆实现 ✅
|
426
|
+
- 记忆管理器 ✅
|
427
|
+
- 记忆整合和遗忘 ✅
|
428
|
+
- 单元测试覆盖 ✅
|
429
|
+
|
430
|
+
### 第三阶段:高级功能 ✅
|
431
|
+
1. 技能和工具 ✅
|
432
|
+
- 技能系统实现 ✅
|
433
|
+
- 工具集成框架 ✅
|
434
|
+
- RAG实现 ✅
|
435
|
+
|
436
|
+
2. 团队和管理 ✅
|
437
|
+
- 团队协调 ✅
|
438
|
+
- 任务管理 ✅
|
439
|
+
- 工作流编排 ✅
|
440
|
+
|
441
|
+
### 第四阶段:完善和优化
|
442
|
+
1. WebSocket支持 ✅
|
443
|
+
- WebSocket服务器实现 ✅
|
444
|
+
- WebSocket客户端实现 ✅
|
445
|
+
- 消息类型和验证 ✅
|
446
|
+
- 流式传输支持 ✅
|
447
|
+
- 错误处理和重连 ✅
|
448
|
+
- 单元测试覆盖 ✅
|
449
|
+
2. 浏览器兼容性 ✅
|
450
|
+
- 浏览器WebSocket客户端 ✅
|
451
|
+
- 原生WebSocket API支持 ✅
|
452
|
+
- 跨浏览器兼容性测试 ✅
|
453
|
+
- 单元测试覆盖 ✅
|
454
|
+
3. 插件系统 ✅
|
455
|
+
- 插件接口定义 ✅
|
456
|
+
- 插件生命周期管理 ✅
|
457
|
+
- 插件依赖管理 ✅
|
458
|
+
- 插件配置管理 ✅
|
459
|
+
- 钩子系统实现 ✅
|
460
|
+
- 错误处理机制 ✅
|
461
|
+
- 单元测试覆盖 ✅
|
462
|
+
4. 监控和可观测性 ✅
|
463
|
+
- [x] 指标收集(计数器、仪表盘、直方图、摘要)
|
464
|
+
- [x] 分布式追踪(跨度、事件、错误跟踪)
|
465
|
+
- [x] 结构化日志(级别、上下文)
|
466
|
+
- [x] 单元测试覆盖
|
467
|
+
|
468
|
+
## 5. 技术决策 ✅
|
469
|
+
|
470
|
+
### TypeScript配置 ✅
|
471
|
+
- 目标: ES2020+ ✅
|
472
|
+
- 启用严格类型检查 ✅
|
473
|
+
- ESM模块 ✅
|
474
|
+
- Node.js 18+支持 ✅
|
475
|
+
|
476
|
+
### 依赖 ✅
|
477
|
+
- OpenAI API客户端 ✅
|
478
|
+
- 向量存储(Milvus/Qdrant客户端) ✅
|
479
|
+
- 文档处理库 ✅
|
480
|
+
- 测试框架(Jest) ✅
|
481
|
+
- 日志(Winston/Pino) ✅
|
482
|
+
|
483
|
+
### 架构改进 ✅
|
484
|
+
1. 增强类型安全 ✅
|
485
|
+
- 严格类型定义 ✅
|
486
|
+
- 运行时类型验证 ✅
|
487
|
+
- 接口优先设计 ✅
|
488
|
+
|
489
|
+
2. 现代JavaScript特性 ✅
|
490
|
+
- 全面使用async/await ✅
|
491
|
+
- ES模块 ✅
|
492
|
+
- 装饰器用于角色和动作定义 ✅
|
493
|
+
|
494
|
+
3. 开发者体验 ✅
|
495
|
+
- 更好的IDE集成 ✅
|
496
|
+
- 改进的错误消息 ✅
|
497
|
+
- 完整的文档 ✅
|
498
|
+
|
499
|
+
## 6. 实现策略 ✅
|
500
|
+
|
501
|
+
### 步骤1:项目设置 ✅
|
502
|
+
1. 初始化package.json ✅
|
503
|
+
2. 配置TypeScript ✅
|
504
|
+
3. 设置开发工具 ✅
|
505
|
+
4. 创建基本项目结构 ✅
|
506
|
+
|
507
|
+
### 步骤2:核心实现 ✅
|
508
|
+
1. 移植基础工具和辅助函数 ✅
|
509
|
+
2. 实现配置系统 ✅
|
510
|
+
3. 创建基类和接口 ✅
|
511
|
+
4. 设置LLM提供商集成 ✅
|
512
|
+
|
513
|
+
### 步骤3:角色系统 ✅
|
514
|
+
1. 实现角色基类 ✅
|
515
|
+
2. 移植基本角色 ✅
|
516
|
+
3. 设置消息处理 ✅
|
517
|
+
4. 实现状态管理 ✅
|
518
|
+
|
519
|
+
### 步骤4:动作和技能 ✅
|
520
|
+
1. 创建动作框架 ✅
|
521
|
+
2. 移植基本动作 ✅
|
522
|
+
3. 实现技能系统 ✅
|
523
|
+
4. 添加工具集成 ✅
|
524
|
+
|
525
|
+
### 步骤5:高级功能 ✅
|
526
|
+
1. 实现RAG系统 ✅
|
527
|
+
2. 添加团队管理 ✅
|
528
|
+
3. 创建工作流编排 ✅
|
529
|
+
4. 移植剩余功能 ✅
|
530
|
+
|
531
|
+
## 7. 测试策略 ✅
|
532
|
+
1. 单元测试(Vitest) ✅
|
533
|
+
2. 集成测试 ✅
|
534
|
+
3. E2E测试 ✅
|
535
|
+
4. 性能基准测试 ✅
|
536
|
+
|
537
|
+
## 8. 文档
|
538
|
+
1. API文档 ✅
|
539
|
+
- TypeDoc配置 ✅
|
540
|
+
- JSDoc注释 ✅
|
541
|
+
- API参考文档生成 ✅
|
542
|
+
2. 使用示例
|
543
|
+
3. 迁移指南
|
544
|
+
4. 最佳实践
|
545
|
+
|
546
|
+
## 9. 兼容性考虑
|
547
|
+
1. 尽可能保持API兼容性 ✅
|
548
|
+
2. 记录破坏性变更 ✅
|
549
|
+
3. 提供迁移工具
|
550
|
+
4. 支持渐进式采用
|
551
|
+
|
552
|
+
## 10. 未来增强
|
553
|
+
1. WebSocket支持 ✅
|
554
|
+
2. 浏览器兼容性 ✅
|
555
|
+
3. 插件系统 ✅
|
556
|
+
4. 增强监控和可观察性
|
557
|
+
|
558
|
+
|
559
|
+
## 11. 智能体实现规划
|
560
|
+
|
561
|
+
### 基础智能体架构
|
562
|
+
1. 智能体核心框架
|
563
|
+
- [x] 基础智能体接口定义
|
564
|
+
- [x] 智能体生命周期管理
|
565
|
+
- [x] 智能体状态机实现
|
566
|
+
- [x] 智能体通信协议
|
567
|
+
|
568
|
+
2. 认知模型集成
|
569
|
+
- [x] LLM推理引擎
|
570
|
+
- [x] 上下文管理系统
|
571
|
+
- [x] 提示工程框架
|
572
|
+
- [x] 思维链(CoT)支持
|
573
|
+
|
574
|
+
3. 感知与交互
|
575
|
+
- [x] 输入处理管道
|
576
|
+
- [x] 输出格式化系统
|
577
|
+
- [x] 多模态输入适配器
|
578
|
+
- [x] 反馈处理机制
|
579
|
+
|
580
|
+
### 专业智能体实现
|
581
|
+
1. 开发团队智能体
|
582
|
+
- [x] 产品经理(ProductManager)
|
583
|
+
- [x] 架构师(Architect)
|
584
|
+
- [x] 工程师(Engineer)
|
585
|
+
- [x] 测试工程师(QAEngineer)
|
586
|
+
- [ ] DevOps工程师(DevOpsEngineer)
|
587
|
+
- [ ] 安全专家(SecurityExpert)
|
588
|
+
|
589
|
+
2. 创意与内容智能体
|
590
|
+
- [ ] 内容创作者(ContentCreator)
|
591
|
+
- [ ] 设计师(Designer)
|
592
|
+
- [ ] 营销专家(MarketingExpert)
|
593
|
+
- [ ] 数据分析师(DataAnalyst)
|
594
|
+
|
595
|
+
3. 领域专家智能体
|
596
|
+
- [ ] 金融顾问(FinancialAdvisor)
|
597
|
+
- [ ] 法律顾问(LegalAdvisor)
|
598
|
+
- [ ] 医疗顾问(MedicalAdvisor)
|
599
|
+
- [ ] 教育专家(EducationExpert)
|
600
|
+
|
601
|
+
### 高级智能体能力
|
602
|
+
1. 自主学习系统
|
603
|
+
- [ ] 经验累积机制
|
604
|
+
- [ ] 知识蒸馏框架
|
605
|
+
- [ ] 自我评估系统
|
606
|
+
- [ ] 能力进化机制
|
607
|
+
|
608
|
+
2. 协作增强
|
609
|
+
- [ ] 智能体协商协议
|
610
|
+
- [ ] 冲突解决机制
|
611
|
+
- [ ] 任务分配优化
|
612
|
+
- [ ] 集体智慧聚合
|
613
|
+
|
614
|
+
3. 自适应能力
|
615
|
+
- [ ] 环境感知系统
|
616
|
+
- [ ] 目标调整机制
|
617
|
+
- [ ] 策略适应框架
|
618
|
+
- [ ] 资源优化分配
|
619
|
+
|
620
|
+
### 智能体生态系统
|
621
|
+
1. 智能体市场
|
622
|
+
- [ ] 智能体发现机制
|
623
|
+
- [ ] 能力评级系统
|
624
|
+
- [ ] 智能体组合推荐
|
625
|
+
- [ ] 使用分析与优化
|
626
|
+
|
627
|
+
2. 自定义智能体工具
|
628
|
+
- [ ] 智能体设计器
|
629
|
+
- [ ] 行为编程接口
|
630
|
+
- [ ] 能力组合系统
|
631
|
+
- [ ] 性能测试框架
|
632
|
+
|
633
|
+
3. 智能体治理
|
634
|
+
- [ ] 行为监控系统
|
635
|
+
- [ ] 安全边界实施
|
636
|
+
- [ ] 伦理准则执行
|
637
|
+
- [ ] 隐私保护机制
|
638
|
+
|
639
|
+
|
640
|
+
## 12. 智能编程助手
|
641
|
+
### 代码智能体
|
642
|
+
1. 代码生成与补全
|
643
|
+
- [ ] 上下文感知代码生成
|
644
|
+
- [ ] 智能代码补全系统
|
645
|
+
- [ ] 多语言支持框架
|
646
|
+
- [ ] 代码风格适应机制
|
647
|
+
|
648
|
+
2. 代码理解与分析
|
649
|
+
- [ ] 代码语义理解引擎
|
650
|
+
- [ ] 依赖关系分析器
|
651
|
+
- [ ] 代码质量评估系统
|
652
|
+
- [ ] 性能瓶颈识别
|
653
|
+
|
654
|
+
3. 重构与优化
|
655
|
+
- [ ] 自动代码重构建议
|
656
|
+
- [ ] 设计模式识别与应用
|
657
|
+
- [ ] 代码简化与优化
|
658
|
+
- [ ] 技术债务识别
|
659
|
+
|
660
|
+
### 开发流程增强
|
661
|
+
1. 需求转代码
|
662
|
+
- [ ] 自然语言需求解析
|
663
|
+
- [ ] 需求到设计映射
|
664
|
+
- [ ] 设计到代码转换
|
665
|
+
- [ ] 一致性验证机制
|
666
|
+
|
667
|
+
2. 测试与调试
|
668
|
+
- [ ] 自动测试生成
|
669
|
+
- [ ] 边界条件识别
|
670
|
+
- [ ] 智能调试建议
|
671
|
+
- [ ] 错误根因分析
|
672
|
+
|
673
|
+
3. 文档与知识
|
674
|
+
- [ ] 自动文档生成
|
675
|
+
- [ ] 代码注释增强
|
676
|
+
- [ ] API使用示例生成
|
677
|
+
- [ ] 知识库集成
|
678
|
+
|
679
|
+
### 协作编程体验
|
680
|
+
1. 多人协作
|
681
|
+
- [ ] 代码意图理解
|
682
|
+
- [ ] 冲突预测与解决
|
683
|
+
- [ ] 代码审查助手
|
684
|
+
- [ ] 团队知识共享
|
685
|
+
|
686
|
+
2. 上下文感知
|
687
|
+
- [ ] 项目结构理解
|
688
|
+
- [ ] 代码历史分析
|
689
|
+
- [ ] 开发者意图推断
|
690
|
+
- [ ] 工作流适应
|
691
|
+
|
692
|
+
3. 学习与成长
|
693
|
+
- [ ] 个性化编程建议
|
694
|
+
- [ ] 技能差距分析
|
695
|
+
- [ ] 学习路径推荐
|
696
|
+
- [ ] 编程模式教学
|
697
|
+
|
698
|
+
|
699
|
+
|
700
|
+
|
701
|
+
## 12. 后续规划
|
702
|
+
|
703
|
+
### 核心架构演进
|
704
|
+
1. 强化类型系统
|
705
|
+
- [ ] 实现运行时类型验证
|
706
|
+
- [ ] 增强泛型支持
|
707
|
+
- [ ] 完善模式匹配机制
|
708
|
+
|
709
|
+
2. 性能优化
|
710
|
+
- [ ] 消息管道性能基准测试
|
711
|
+
- [ ] 内存管理优化
|
712
|
+
- [ ] 异步任务调度改进
|
713
|
+
|
714
|
+
3. 可扩展性增强
|
715
|
+
- [ ] 模块化架构重构
|
716
|
+
- [ ] 动态插件加载机制
|
717
|
+
- [ ] 热更新支持
|
718
|
+
|
719
|
+
### 生态系统建设
|
720
|
+
1. 开发者工具链
|
721
|
+
- [ ] CLI工具增强
|
722
|
+
- [ ] 可视化调试器
|
723
|
+
- [ ] 性能分析工具
|
724
|
+
|
725
|
+
2. 模板与示例
|
726
|
+
- [ ] 创建常用场景模板
|
727
|
+
- [ ] 添加企业级示例
|
728
|
+
- [ ] 构建示例库
|
729
|
+
|
730
|
+
3. 集成支持
|
731
|
+
- [ ] 主流前端框架适配
|
732
|
+
- [ ] Node.js运行时优化
|
733
|
+
- [ ] Deno/Bun深度集成
|
734
|
+
|
735
|
+
### 智能化演进
|
736
|
+
1. 自适应学习
|
737
|
+
- [ ] 实现经验记忆库
|
738
|
+
- [ ] 添加自我优化机制
|
739
|
+
- [ ] 构建反馈循环系统
|
740
|
+
|
741
|
+
2. 多模态支持
|
742
|
+
- [ ] 图像处理管道
|
743
|
+
- [ ] 音频交互支持
|
744
|
+
- [ ] 视频分析集成
|
745
|
+
|
746
|
+
3. 决策优化
|
747
|
+
- [ ] 强化学习集成
|
748
|
+
- [ ] 成本控制模块
|
749
|
+
- [ ] 风险评估系统
|
750
|
+
|
751
|
+
|
752
|
+
在metagpt.ts的设计上,参考了[MetaGPT](https://github.com/geekan/MetaGPT)的实现逻辑,特此感谢。
|
753
|
+
|
754
|
+
|