flowmind 1.4.7 → 1.5.0

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/README_CN.md CHANGED
@@ -11,1179 +11,82 @@
11
11
  [![npm version](https://img.shields.io/npm/v/flowmind.svg)](https://www.npmjs.com/package/flowmind)
12
12
  [![npm downloads](https://img.shields.io/npm/dw/flowmind.svg)](https://www.npmjs.com/package/flowmind)
13
13
 
14
- [English](README.md) | [快速开始](#-快速开始) | [演示](demo/DEMO_CN.md) | [集成指南](docs/integration-guide.md) | [工作原理](#-工作原理) | [使用场景](#-使用场景) | [架构](#-架构)
14
+ [English](README.md) | [快速开始](#快速开始) | [演示](demo/DEMO_CN.md) | [详细指南](docs/guide.zh-CN.md) | [集成指南](docs/integration-guide.md) | [更新记录](CHANGELOG.md)
15
15
 
16
16
  </div>
17
17
 
18
18
  ---
19
19
 
20
- ## 为什么值得安装
20
+ ## 它是什么
21
21
 
22
- FlowMind 的目标不是“什么都做”,而是把**重复出现的开发工作流记住并复用**。
22
+ FlowMind 是一个面向重复开发工作流的记忆层。
23
23
 
24
- 它更适合已经在使用 `MCP`、`Codex`、`Claude Code` 或脚本化 CLI 的开发者,核心价值有三点:
24
+ 它适合这样一类场景:你已经有工具,但希望执行入口更稳定:
25
25
 
26
- - skill 路由可复用任务
27
- - 用显式反馈沉淀偏好和执行习惯
28
- - CLI / MCP 入口替代重复输 prompt
26
+ - 把重复任务路由到可复用的 skill
27
+ - 把显式反馈沉淀下来,下次自动复用
28
+ - 让同一套工作流同时可用于 CLI、Codex MCP 客户端
29
29
 
30
- 一句话概括:
30
+ 当前最适合的使用方向:
31
31
 
32
- > FlowMind 是一个面向重复开发操作的记忆层。
33
-
34
- ## 30 秒跑通示例
35
-
36
- 更完整的演示见 [demo/DEMO_CN.md](demo/DEMO_CN.md)。
37
-
38
- 终端操作 GIF 演示:
39
-
40
- ![FlowMind 终端演示](https://raw.githubusercontent.com/Eleven-M/flowmind/master/demo/flowmind-demo.gif)
41
-
42
- ```bash
43
- # 1. 安装
44
- npm install -g flowmind
45
-
46
- # 2. 看看有哪些技能
47
- flowmind skills --json
48
-
49
- # 3. 走真正的日志技能链路
50
- flowmind process --skill log-audit "查询 traceId abc123 的日志"
51
-
52
- # 4. 给出显式反馈
53
- flowmind "下次用表格格式"
54
-
55
- # 5. 如果你在 Codex / 脚本里集成
56
- flowmind-codex --skill log-audit "查询 traceId abc123 的日志"
57
- ```
58
-
59
- 你现在就能拿到的价值:
60
- - 可复用的 skill 执行入口
61
- - 显式反馈学习
62
- - 本地持久化偏好
63
- - 对 Codex 更友好的 CLI 接口
64
-
65
- 当前最适合的场景:
66
32
  - 日志与 trace 排查
67
33
  - 有固定标准的代码审查
68
- - 通过 MCP 适配器串联内部工具
34
+ - 数据校验和内部工具串联
69
35
 
70
36
  ## 快速开始
71
37
 
72
38
  ```bash
73
39
  npm install -g flowmind
74
- flowmind init
75
- flowmind skills --json
76
- flowmind process --skill log-audit "查询 traceId abc123 的日志"
77
- ```
78
-
79
- 如果你想先试一下,不想全局安装:
80
-
81
- ```bash
82
- npx flowmind@latest skills
83
- npx flowmind@latest doctor
84
- ```
85
-
86
- 如果你想最快验证它是否适合你,先跑这组命令:
87
-
88
- ```bash
89
40
  flowmind doctor
90
41
  flowmind skills
91
42
  flowmind process --skill log-audit "查询最近的错误日志"
92
43
  ```
93
44
 
94
- 如果你要集成到 Codex 或脚本:
45
+ 如果你要给 Codex 或脚本消费 JSON:
95
46
 
96
47
  ```bash
97
48
  flowmind-codex skills
98
49
  flowmind-codex --skill log-audit "查询 traceId abc123 的日志"
99
50
  ```
100
51
 
101
- FlowMind 会把学习数据保存在本地,并在后续运行中应用这些显式反馈。
102
-
103
- 如果你要接入 Claude Code、Codex、Cursor 或 MCP 客户端,可以直接看 [docs/integration-guide.md](docs/integration-guide.md)。
104
-
105
- ## 适合谁
106
-
107
- - 已经接入 MCP 内部工具的团队
108
- - 经常重复做日志排查、代码审查、数据校验、文档同步的工程师
109
- - 希望把工作流沉淀给 Codex 或 Claude Code 复用的人
110
-
111
- ## 为什么比直接写 Prompt 更稳
112
-
113
- - skill 提供稳定的执行路径
114
- - 反馈会沉淀成状态,而不是停留在聊天记录里
115
- - CLI 和 MCP 入口更容易脚本化
116
- - 切换 provider 主要靠配置,不靠重新组织 prompt
117
-
118
- ---
119
-
120
- ## 📖 使用方式
121
-
122
- FlowMind 支持 4 种使用方式,满足不同场景需求:
123
-
124
- ### 方式1: CLI 独立使用
125
-
126
- 最简单的使用方式,无需 AI 模型,直接通过命令行调用。
127
-
128
- ```bash
129
- # 单次执行
130
- flowmind "查询 traceId abc123 的日志"
131
- flowmind "审查代码质量"
132
- flowmind "验证订单数据"
133
-
134
- # 交互模式
135
- flowmind
136
-
137
- # 指定技能执行
138
- flowmind process --skill log-audit "查询最近1小时的错误日志"
139
- ```
140
-
141
- **特点:**
142
- - ✅ 无需 AI 模型
143
- - ✅ 基于规则引擎匹配
144
- - ✅ 支持学习和记忆
145
- - ✅ 离线可用
146
-
147
- ---
148
-
149
- ### 方式2: AI 模型直接接入
150
-
151
- FlowMind 内置 AI 模型接入层,可直接调用 OpenAI、Anthropic、Ollama 等模型。
152
-
153
- #### 配置 AI 模型
154
-
155
- **方式 A:通过 CLI 初始化(推荐)**
156
-
157
- ```bash
158
- # 配置 OpenAI
159
- flowmind init --ai openai
160
- # 会提示输入 API Key
161
-
162
- # 配置 Anthropic
163
- flowmind init --ai anthropic
164
-
165
- # 配置 Ollama (本地模型)
166
- flowmind init --ai ollama
167
- ```
168
-
169
- **方式 B:手动配置**
170
-
171
- 创建 `~/.flowmind/ai-config.json`:
172
-
173
- ```json
174
- {
175
- "ai": {
176
- "enabled": true,
177
- "defaultProvider": "openai",
178
- "fallbackToRules": true,
179
- "providers": {
180
- "openai": {
181
- "apiKey": "sk-your-api-key",
182
- "model": "gpt-4",
183
- "temperature": 0.3
184
- },
185
- "anthropic": {
186
- "apiKey": "sk-ant-your-api-key",
187
- "model": "claude-3-sonnet-20240229"
188
- },
189
- "ollama": {
190
- "baseUrl": "http://localhost:11434",
191
- "model": "llama2"
192
- }
193
- },
194
- "features": {
195
- "intentUnderstanding": true,
196
- "parameterExtraction": true,
197
- "skillSelection": true,
198
- "resultSummary": true,
199
- "learningFeedback": true
200
- }
201
- }
202
- }
203
- ```
204
-
205
- **方式 C:环境变量**
206
-
207
- ```bash
208
- export OPENAI_API_KEY=sk-your-api-key
209
- export ANTHROPIC_API_KEY=sk-ant-your-api-key
210
- ```
211
-
212
- #### 测试 AI 连接
213
-
214
- ```bash
215
- # 测试默认 Provider
216
- flowmind ai --test
217
-
218
- # 测试指定 Provider
219
- flowmind ai --test openai
220
- flowmind ai --test anthropic
221
- ```
222
-
223
- #### 使用 AI 增强功能
224
-
225
- ```bash
226
- # AI 会理解意图、提取参数、选择技能、生成摘要
227
- flowmind "帮我查一下最近1小时用户服务的错误日志"
228
-
229
- # AI 会分析复杂的多步骤任务
230
- flowmind "排查线上问题:用户下单失败,需要查看日志、检查数据库、分析原因"
231
- ```
232
-
233
- **特点:**
234
- - ✅ 自然语言理解
235
- - ✅ 智能参数提取
236
- - ✅ 结果摘要生成
237
- - ✅ 降级到规则引擎
238
-
239
- ---
240
-
241
- ### 方式3: Claude Code 集成(MCP Server)
242
-
243
- 让 Claude Code 直接调用 FlowMind 的内部流程。
244
-
245
- #### 步骤 1:安装 FlowMind
246
-
247
- ```bash
248
- npm install -g flowmind
249
- ```
250
-
251
- #### 步骤 2:配置 MCP Server
252
-
253
- 在项目根目录创建 `.claude/settings.local.json`:
254
-
255
- ```json
256
- {
257
- "mcpServers": {
258
- "flowmind": {
259
- "command": "flowmind-mcp",
260
- "args": [],
261
- "env": {
262
- "OPENAI_API_KEY": "${OPENAI_API_KEY}"
263
- }
264
- }
265
- }
266
- }
267
- ```
268
-
269
- 或者使用完整路径:
270
-
271
- ```json
272
- {
273
- "mcpServers": {
274
- "flowmind": {
275
- "command": "node",
276
- "args": ["/path/to/flowmind/mcp/server.js"]
277
- }
278
- }
279
- }
280
- ```
281
-
282
- #### 步骤 3:在 Claude Code 中使用
283
-
284
- ```
285
- 你:帮我查询最近1小时的错误日志
286
-
287
- Claude:我来调用 FlowMind 帮你查询...
288
- [调用 flowmind_process 工具]
289
-
290
- 你:审查一下这个项目的代码质量
291
-
292
- Claude:我来使用 FlowMind 的代码审查技能...
293
- [调用 flowmind_skill_code-review 工具]
294
- ```
295
-
296
- #### 可用的 MCP 工具
297
-
298
- | 工具名称 | 描述 |
299
- |---------|------|
300
- | `flowmind_process` | 处理请求的主入口 |
301
- | `flowmind_list_skills` | 列出所有可用技能 |
302
- | `flowmind_get_skill` | 获取技能详情 |
303
- | `flowmind_ai_status` | 查看 AI 状态 |
304
- | `flowmind_learning_stats` | 查看学习统计 |
305
- | `flowmind_skill_<name>` | 执行特定技能 |
306
-
307
- **特点:**
308
- - ✅ Claude Code 直接调用
309
- - ✅ 无需额外配置 MCP Server
310
- - ✅ 保留学习和记忆功能
311
- - ✅ 支持所有 FlowMind 技能
312
-
313
- ---
314
-
315
- ### 方式4: Codex 集成(JSON 输出)
316
-
317
- 通过 JSON 输出与 Codex 集成。
318
-
319
- ```bash
320
- # 推荐:使用 Codex 包装命令
321
- flowmind-codex "查询最近1小时的错误日志"
322
- flowmind-codex skills
323
- flowmind-codex skill log-audit
324
- flowmind-codex doctor
325
-
326
- # 默认使用当前工作区的 .flowmind-codex/
327
- # 也可以自定义目录
328
- # FLOWMIND_CODEX_HOME=/your/path flowmind-codex skills
329
-
330
- # 获取技能列表 (JSON 格式)
331
- flowmind skills --json
332
-
333
- # 获取技能详情
334
- flowmind skill log-audit --json
335
-
336
- # 执行并输出 JSON
337
- flowmind process --json "查询日志"
338
- ```
339
-
340
- **Codex 脚本示例:**
341
-
342
- ```python
343
- import subprocess
344
- import json
345
-
346
- def flowmind_query(query):
347
- result = subprocess.run(
348
- ['flowmind', 'process', '--json', query],
349
- capture_output=True,
350
- text=True
351
- )
352
- return json.loads(result.stdout)
353
-
354
- # 使用
355
- result = flowmind_query("查询 traceId abc123 的日志")
356
- print(result)
357
- ```
358
-
359
- ---
360
-
361
- ### 使用方式对比
362
-
363
- | 方式 | 适用场景 | 需要 AI | 需要 MCP | 特点 |
364
- |------|---------|---------|----------|------|
365
- | CLI 独立使用 | 快速执行、脚本集成 | ❌ | ❌ | 简单直接 |
366
- | AI 模型接入 | 智能理解、复杂任务 | ✅ | ❌ | 自然语言 |
367
- | Claude Code | 智能对话、多步骤 | ✅ | ✅ | 深度集成 |
368
- | Codex 集成 | 自动化、CI/CD | ❌ | ❌ | 程序化调用 |
369
-
370
- ---
371
-
372
- ## 🧠 工作原理
373
-
374
- ### 1. 多源代码定位
375
-
376
- ```mermaid
377
- graph LR
378
- A[你的请求] --> B{代码定位}
379
- B -->|本地| C[本地代码库]
380
- B -->|MCP| D[远程仓库]
381
- B -->|SSH| E[服务器代码]
382
- C --> F[智能匹配]
383
- D --> F
384
- E --> F
385
- F --> G[精准定位]
386
- ```
387
-
388
- **支持模式:**
389
- - 📁 **本地模式** - 直接读取本地代码库
390
- - 🔌 **MCP 模式** - 通过 MCP 协议连接远程仓库
391
- - 🔐 **SSH 模式** - SSH 连接服务器读取代码
392
-
393
- ### 2. RAG 智能检索
394
-
395
- ```mermaid
396
- graph TD
397
- A[历史数据收集] --> B[知识库构建]
398
- B --> C[智能检索匹配]
399
- C --> D[上下文生成]
400
- D --> E[自动应用]
401
- E --> F[持续优化]
402
- F --> A
403
- ```
404
-
405
- **RAG 流程:**
406
- - 📚 **数据收集** - 收集历史学习记录、工作流、最佳实践
407
- - 🔍 **智能匹配** - 基于场景相似度计算,推荐最匹配的工作流
408
- - 📝 **上下文生成** - 自动生成上下文,减少重复输入
409
- - 🔄 **持续优化** - 每次使用都在优化匹配算法
410
-
411
- ### 3. 学习反馈机制
412
-
413
- ```mermaid
414
- graph LR
415
- A[你的请求] --> B[FlowMind 执行]
416
- B --> C{你纠正了?}
417
- C -->|是| D[记录学习]
418
- C -->|否| E[继续]
419
- D --> F[下次应用]
420
- F --> G[自我进化]
421
- ```
422
-
423
- **学习类型:**
424
- - 📚 **纠正学习** - "不对,用表格格式" → 自动记住
425
- - 🗺️ **场景学习** - "排查问题先查错误再查链路" → 记录工作流
426
- - ⚙️ **偏好学习** - "用中文回复" → 记录语言偏好
427
- - 🔄 **自动应用** - 下次自动使用学习到的工作流
428
-
429
- ### 4. 可插拔组件架构
430
-
431
- FlowMind 采用**可插拔组件架构**,支持通过配置切换云服务商(阿里云、百度云、ELK 等),无需修改技能代码。
432
-
433
- ```mermaid
434
- graph TB
435
- A[FlowMind Core] --> R[ComponentRegistry 组件注册表]
436
- R --> LS[logService 日志服务]
437
- R --> DB[databaseManager 数据库管理]
438
- R --> DQ[databaseQuery 数据库查询]
439
- R --> RD[redisMonitor Redis 监控]
440
- R --> AP[apiDoc API 文档]
441
- R --> KB[knowledgeBase 知识库]
442
- R --> WF[workflow 工作流]
443
- R --> RP[report 报告]
444
-
445
- LS --> LS1[阿里云 SLS]
446
- LS --> LS2[百度云日志]
447
- LS --> LS3[ELK]
448
- DB --> DB1[阿里云 DMS]
449
- KB --> KB1[语雀]
450
- KB --> KB2[Notion]
451
- AP --> AP1[YApi]
452
- ```
453
-
454
- **8 种组件类型:**
455
-
456
- | 组件类型 | 默认提供者 | 说明 |
457
- |----------|------------|------|
458
- | `logService` | aliyun-sls | 云日志查询与分析 |
459
- | `databaseManager` | aliyun-dms | 数据库实例管理 |
460
- | `databaseQuery` | aliyun-rds-query | 数据库 SQL 直查 |
461
- | `redisMonitor` | aliyun-redis | Redis Prometheus 监控 |
462
- | `apiDoc` | yapi | API 文档管理 |
463
- | `knowledgeBase` | yuque | 知识库与文档 |
464
- | `workflow` | friday-flow | 自动化工作流与流水线 |
465
- | `report` | friday-report | 测试与覆盖率报告 |
466
-
467
- **切换提供者仅需修改配置:**
468
-
469
- ```json
470
- {
471
- "components": {
472
- "logService": {
473
- "default": "baidu-sls",
474
- "providers": {
475
- "baidu-sls": { "adapter": "baidu-sls-adapter", "enabled": true }
476
- }
477
- }
478
- }
479
- }
480
- ```
481
-
482
- ---
483
-
484
- ## 📊 使用场景
485
-
486
- ### 场景 1:线上问题排查
487
-
488
- ```bash
489
- # 传统方式(10+ 步骤):
490
- 1. 登录 SLS 控制台
491
- 2. 输入查询条件
492
- 3. 找到 traceId
493
- 4. 复制 traceId
494
- 5. 查找链路
495
- 6. 定位错误
496
- 7. 连接 RDS
497
- 8. 查询数据
498
- 9. 分析原因
499
- 10. 修改代码
500
- 11. 提交部署
501
- 12. 写文档归档
502
-
503
- # FlowMind 方式(1 个命令):
504
- flowmind "排查线上问题 traceId abc123"
505
- # → 自动完成:SLS 查询 → 链路追踪 → RDS 数据验证 → 代码定位 → 修复建议
506
- ```
507
-
508
- ### 场景 2:代码审查
509
-
510
- ```bash
511
- # 设置你的标准(只需一次)
512
- flowmind "代码审查先检查安全漏洞,再检查代码质量,最后检查性能"
513
-
514
- # 每次审查都遵循你的标准
515
- flowmind "审查这个 PR"
516
- # → 安全优先 → 质量检查 → 性能分析
517
- ```
518
-
519
- ### 场景 3:API 文档同步
520
-
521
- ```bash
522
- # 从代码生成文档
523
- flowmind "从代码注释生成 API 文档"
524
-
525
- # 同步到 YApi
526
- flowmind "同步接口到 YApi"
527
-
528
- # 自动更新语雀
529
- flowmind "同步 API 文档到语雀"
530
- ```
531
-
532
- ### 场景 4:数据验证
533
-
534
- ```bash
535
- # 连接 RDS 验证数据
536
- flowmind "验证订单表数据完整性"
537
-
538
- # 自动执行检查
539
- # → 引用完整性 → 数据类型 → 业务逻辑 → 状态机
540
- ```
541
-
542
- ### 场景 5:项目健康检查
543
-
544
- ```bash
545
- # 全面审查
546
- flowmind "审查项目整体状况"
547
-
548
- # 自动执行:
549
- # → 依赖分析 → 安全审计 → 代码复杂度 → 测试覆盖率 → 技术债务
550
- ```
551
-
552
- ### 场景 6:项目快速上手
52
+ 如果你更想先用 `npx` 试一下:
553
53
 
554
54
  ```bash
555
- # 刚加入项目?FlowMind 帮你快速理解
556
- flowmind "帮我理解这个项目的整体架构"
557
-
558
- # FlowMind 从资深开发者的经验中学习:
559
- # → 项目结构分析 → 核心模块讲解 → 数据流梳理
560
- # → 关键设计决策 → 开发规范指引 → 推荐学习路径
561
- ```
562
-
563
- ### 场景 7:设计与架构指导
564
-
565
- ```bash
566
- # 面临设计选择?FlowMind 借助积累的经验给出建议
567
- flowmind "这个功能应该用 Redis 还是 MongoDB?"
568
-
569
- # FlowMind 运用学到的设计思维:
570
- # → 你的项目上下文 → 当前技术栈 → 性能需求
571
- # → 历史类似决策 → 权衡分析 → 数据驱动的建议
572
- ```
573
-
574
- ---
575
-
576
- ## 📖 CLI 命令参考
577
-
578
- ### 技能管理
579
-
580
- ```bash
581
- # 列出所有可用技能
582
- flowmind skills
583
- flowmind skills --verbose # 显示详细信息
584
- flowmind skills --json # JSON 输出(用于工具集成)
585
- flowmind skills --category quality # 按分类过滤
586
-
587
- # 查看单个技能信息
588
- flowmind skill log-audit
589
- flowmind skill log-audit --json # JSON 输出
590
- flowmind skill log-audit --read # 读取 SKILL.md 内容
591
- flowmind skill log-audit --config # 显示配置
592
-
593
- # 修改技能配置
594
- flowmind skill log-audit --set defaultFormat sequential-list
595
- flowmind skill code-review --set security.enabled true
596
- ```
597
-
598
- ### 资源管理
599
-
600
- ```bash
601
- # 列出资源文件
602
- flowmind resource --list
603
- flowmind resource --list learning
604
- flowmind resource --list --json # JSON 输出
605
-
606
- # 查看/编辑文件
607
- flowmind resource --show config.json
608
- flowmind resource --edit config.json
609
-
610
- # 显示资源配置
611
- flowmind resource --config
612
- flowmind resource --config --json
613
- ```
614
-
615
- ### 其他命令
616
-
617
- ```bash
618
- # 处理请求
619
- flowmind process "your request"
620
- flowmind process --skill log-audit "query logs"
621
-
622
- # 管理学习记录
623
- flowmind learn --list
624
- flowmind learn --export learnings.json
625
-
626
- # 场景管理
627
- flowmind scenes --list
628
- flowmind scenes --add
629
-
630
- # 显示统计信息
631
- flowmind stats
632
-
633
- # 配置管理
634
- flowmind config --list
635
- flowmind config --set learning.enabled true
636
- ```
637
-
638
- ### 工具集成(Codex/Claude)
639
-
640
- 所有命令支持 `--json` 参数用于程序化访问:
641
-
642
- ```bash
643
- # 获取技能列表 JSON
644
- flowmind skills --json
645
-
646
- # 获取技能信息 JSON
647
- flowmind skill log-audit --json
648
-
649
- # 获取资源列表 JSON
650
- flowmind resource --list --json
651
- ```
652
-
653
- ---
654
-
655
- ## 🏗️ 架构
656
-
657
- ### 系统架构
658
-
659
- ```
660
- ┌──────────────────────────────────────────────────────────────────┐
661
- │ FlowMind Agent │
662
- ├──────────────────────────────────────────────────────────────────┤
663
- │ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
664
- │ │ 场景匹配器 │ │ 学习引擎 │ │ 技能加载器 │ │
665
- │ └──────────────┘ └──────────────┘ └──────────────┘ │
666
- ├──────────────────────────────────────────────────────────────────┤
667
- │ ┌──────────────────────────────────────────────────────────┐ │
668
- │ │ ComponentRegistry 组件注册表(可插拔) │ │
669
- │ ├──────────┬──────────┬──────────┬──────────┬──────────────┤ │
670
- │ │logService│database │apiDoc │knowledge │workflow/report│ │
671
- │ │Adapter │Manager │Adapter │Base │Adapters │ │
672
- │ └──────────┴──────────┴──────────┴──────────┴──────────────┘ │
673
- ├──────────────────────────────────────────────────────────────────┤
674
- │ ┌──────────────────────────────────────────────────────────┐ │
675
- │ │ 技能系统 │ │
676
- │ ├─────────────┬─────────────┬─────────────┬────────────────┤ │
677
- │ │ 分析类技能 │ 集成类技能 │ 质量类技能 │ 自动化技能 │ │
678
- │ └─────────────┴─────────────┴─────────────┴────────────────┘ │
679
- ├──────────────────────────────────────────────────────────────────┤
680
- │ ┌──────────────────────────────────────────────────────────┐ │
681
- │ │ 云服务商适配器 │ │
682
- │ ├──────────┬──────────┬──────────┬──────────┬──────────────┤ │
683
- │ │阿里云 SLS│阿里云 DMS│ YApi │ 语雀 │Friday Flow │ │
684
- │ │百度云日志 │百度云 DMS │ Swagger │ Notion │Friday Report │ │
685
- │ │ELK │自建数据库 │ │Confluence│ │ │
686
- │ └──────────┴──────────┴──────────┴──────────┴──────────────┘ │
687
- ├──────────────────────────────────────────────────────────────────┤
688
- │ ┌──────────────────────────────────────────────────────────┐ │
689
- │ │ 数据持久层 │ │
690
- │ ├─────────────┬─────────────┬───────────────────────────────┤ │
691
- │ │ 学习记录 │ 场景映射 │ 组件配置与设置 │ │
692
- │ └─────────────┴─────────────┴───────────────────────────────┘ │
693
- └──────────────────────────────────────────────────────────────────┘
694
- ```
695
-
696
- ### 目录结构
697
-
698
- ```
699
- flowmind/
700
- ├── core/ # 核心引擎
701
- │ ├── index.js # 主入口
702
- │ ├── learning-engine.js # 学习引擎
703
- │ ├── scene-matcher.js # 场景匹配
704
- │ ├── skill-loader.js # 技能加载
705
- │ ├── config-manager.js # 配置管理
706
- │ ├── component-types.js # 组件类型定义
707
- │ ├── component-registry.js # 可插拔组件注册表
708
- │ ├── mcp-compatibility.js # MCP 向后兼容层
709
- │ ├── adapters/ # 适配器接口
710
- │ │ ├── base-adapter.js # 抽象基类
711
- │ │ ├── mcp-adapter.js # MCP 适配器基类
712
- │ │ ├── log-service-adapter.js
713
- │ │ ├── database-manager-adapter.js
714
- │ │ ├── database-query-adapter.js
715
- │ │ ├── knowledge-base-adapter.js
716
- │ │ ├── api-doc-adapter.js
717
- │ │ ├── workflow-adapter.js
718
- │ │ └── report-adapter.js
719
- │ └── providers/ # 提供者实现
720
- │ ├── aliyun/ # 阿里云适配器
721
- │ │ ├── sls-adapter.js
722
- │ │ ├── dms-adapter.js
723
- │ │ └── redis-adapter.js
724
- │ ├── yapi/ # YApi 适配器
725
- │ │ └── yapi-adapter.js
726
- │ ├── yuque/ # 语雀适配器
727
- │ │ └── yuque-adapter.js
728
- │ └── friday/ # Friday 平台适配器
729
- │ ├── flow-adapter.js
730
- │ └── report-adapter.js
731
- ├── scripts/ # 迁移工具
732
- │ └── migrate-config.js # 配置迁移工具
733
- ├── skills/ # 技能模块(17 个核心技能)
734
- │ ├── log-audit/ # 日志审计
735
- │ ├── sls-log-audit/ # SLS 日志审查(链路追踪)
736
- │ ├── resource-bind/ # 资源绑定
737
- │ ├── code-review/ # 代码审查
738
- │ ├── code-review-audit/ # 代码审查审核(三维审查)
739
- │ ├── data-validation/ # 数据验证
740
- │ ├── data-logic-validation/ # 数据逻辑验证
741
- │ ├── api-sync/ # API 同步
742
- │ ├── yapi-sync-interface/ # YApi 接口同步
743
- │ ├── yuque-sync-design/ # 语雀设计文档同步
744
- │ ├── project-review/ # 项目审查
745
- │ ├── git-review/ # Git 审查
746
- │ ├── archive-change/ # 变更归档
747
- │ ├── auto-flow/ # 工作流自动化
748
- │ ├── learning-engine/ # 学习引擎
749
- │ ├── learning-feedback/ # 学习反馈(全局)
750
- │ └── requirement-analyst/ # 需求分析师(六维度分析)
751
- ├── learning/ # 学习存储
752
- │ ├── records/ # 学习记录
753
- │ └── scenes.json # 场景映射
754
- ├── templates/ # 输出模板
755
- └── config/ # 配置文件
756
- ```
757
-
758
- ### 学习流程
759
-
760
- ```mermaid
761
- sequenceDiagram
762
- participant U as 用户
763
- participant A as FlowMind Agent
764
- participant M as 场景匹配器
765
- participant L as 学习引擎
766
- participant S as 技能系统
767
- participant MCP as MCP 集成
768
- participant D as 数据持久层
769
-
770
- U->>A: 发起请求
771
- A->>M: 检查场景映射
772
- M->>D: 读取历史记录
773
- D-->>M: 返回匹配的工作流
774
- M-->>A: 返回推荐方案
775
-
776
- A->>S: 执行技能
777
- S->>MCP: 调用外部服务
778
- MCP-->>S: 返回结果
779
- S-->>A: 返回执行结果
780
-
781
- A->>U: 展示结果
782
-
783
- U->>A: 提供反馈
784
- A->>L: 记录学习
785
- L->>D: 持久化存储
786
- L->>L: 优化匹配算法
787
- ```
788
-
789
- ### 一站式问题解决流程
790
-
791
- ```mermaid
792
- graph TB
793
- A[问题发现] --> B[代码定位]
794
- B --> C[数据验证]
795
- C --> D[问题分析]
796
- D --> E[一键修复]
797
- E --> F[自动部署]
798
- F --> G[归档记录]
799
-
800
- B --> B1[本地代码]
801
- B --> B2[MCP 远程]
802
- B --> B3[SSH 模式]
803
-
804
- C --> C1[RDS 数据读取]
805
- C --> C2[数据完整性验证]
806
-
807
- D --> D1[SLS 日志分析]
808
- D --> D2[TraceID 链路追踪]
809
- D --> D3[根因定位]
810
-
811
- E --> E1[代码修改]
812
- E --> E2[单元测试]
813
-
814
- F --> F1[流水线执行]
815
- F --> F2[自动部署]
816
-
817
- G --> G1[OpenSpec 归档]
818
- G --> G2[语雀文档同步]
819
- G --> G3[RAG 数据构建]
820
- ```
821
-
822
- ---
823
-
824
- ## ✨ 功能特性
825
-
826
- ### 🏗️ 核心架构
827
-
828
- FlowMind 基于**企业级架构设计规范**构建,融合了大量架构师和高级开发者的实践经验:
829
-
830
- - 📐 **OpenSpec 设计规范** - 标准化的技能定义和接口规范
831
- - 🧠 **RAG 业务处理逻辑** - 基于历史数据的智能检索和生成
832
- - 💾 **数据持久化** - 所有学习记录和配置本地持久化存储
833
- - ⚙️ **全局配置初始化** - 一次配置,永久生效,无需反复设置
834
- - 🔌 **可插拔组件** - 通过配置切换云服务商(阿里云、百度云、ELK 等),无需修改代码
835
-
836
- ### 🔧 技能系统(17 个核心技能)
837
-
838
- #### 📊 分析类技能
839
-
840
- | 技能 | 功能说明 |
841
- |------|----------|
842
- | 🔍 **log-audit** | 日志审计 - 时间过滤、服务筛选、级别过滤、关键词搜索、TraceID 链路追踪、性能分析 |
843
- | 🔗 **sls-log-audit** | SLS 日志审查 - 阿里云 SLS 日志查询、TraceID 链路分析、Feign 调用链提取、响应耗时分析 |
844
- | 🔎 **project-review** | 项目审查 - 依赖分析、安全审计、许可证合规、代码复杂度、测试覆盖率、技术债务评估 |
845
- | 📋 **git-review** | Git 审查 - 提交质量分析、变更大小评估、影响分析、风险评估、依赖变更检测 |
846
- | 📐 **requirement-analyst** | 需求分析师 - 历史设计原理、迭代演进、扩展性评估、市场路线、需求偏差、升级漏洞(六维度) |
847
-
848
- #### 🔌 集成类技能
849
-
850
- | 技能 | 功能说明 |
851
- |------|----------|
852
- | 🔗 **resource-bind** | 资源绑定 - MySQL/PostgreSQL 连接管理、Redis 操作、REST API 集成、认证管理 |
853
- | 📚 **api-sync** | API 同步 - 从代码注释生成文档、OpenAPI/Swagger 规范生成、客户端 SDK 生成、版本管理 |
854
- | 📋 **yapi-sync-interface** | YApi 接口同步 - Controller 接口同步到 YApi、Swagger 导入导出、接口管理 |
855
- | 📖 **yuque-sync-design** | 语雀设计文档同步 - OpenSpec 设计文档同步到语雀、知识库管理、文档归档 |
856
- | ✅ **data-validation** | 数据验证 - 引用完整性检查、数据类型验证、业务逻辑验证、状态机验证、重复检测 |
857
- | 🔬 **data-logic-validation** | 数据逻辑验证 - 通过 MCP 连接数据库/Redis 验证实际 SQL 和缓存逻辑 |
858
-
859
- #### 🛠️ 质量类技能
860
-
861
- | 技能 | 功能说明 |
862
- |------|----------|
863
- | 🔒 **code-review** | 代码审查 - SQL 注入检测、XSS 漏洞扫描、认证问题、代码风格、复杂度分析、设计模式检查 |
864
- | 🛡️ **code-review-audit** | 代码审查审核 - 三维审查:安全审计、设计合规、强制约束验证,合并/测试前审核 |
865
- | 📝 **archive-change** | 变更归档 - 完成变更归档、自动生成变更摘要、更新日志、创建知识库条目、关联 Issue/PR |
866
-
867
- #### ⚡ 自动化技能
868
-
869
- | 技能 | 功能说明 |
870
- |------|----------|
871
- | 🔄 **auto-flow** | 工作流自动化 - 顺序执行、并行执行、条件分支、错误处理、工作流模板、团队共享 |
872
-
873
- #### 🧠 智能类技能
874
-
875
- | 技能 | 功能说明 |
876
- |------|----------|
877
- | 🎯 **learning-engine** | 学习引擎 - 纠正学习、场景学习、偏好学习、自动应用、学习循环、知识图谱构建 |
878
- | 📝 **learning-feedback** | 学习反馈(全局) - 捕获用户修正、场景映射、自动绑定到相关技能、持续优化 |
879
-
880
- ### 🎯 核心能力详解
881
-
882
- #### 1️⃣ OpenSpec 设计规范
883
- ```
884
- 标准化的技能定义 → 统一的接口规范 → 即插即用
885
- ```
886
- - 每个技能都有标准的 SKILL.md 定义文件
887
- - 统一的触发条件、功能说明、示例规范
888
- - 支持自定义技能扩展
889
-
890
- #### 2️⃣ RAG 业务处理逻辑
891
- ```
892
- 历史数据收集 → 智能检索匹配 → 上下文生成 → 自动应用
893
- ```
894
- - 基于历史学习记录的智能匹配
895
- - 场景相似度计算和推荐
896
- - 上下文感知的工作流应用
897
-
898
- #### 3️⃣ 数据持久化留存
899
- ```
900
- 学习记录 → 本地存储 → 永久保留 → 跨会话复用
901
- ```
902
- - 所有学习记录本地持久化存储
903
- - 配置信息永久保留
904
- - 支持导入导出,团队共享
905
-
906
- #### 4️⃣ 全局配置初始化
907
- ```
908
- flowmind init → 一次性配置 → 永久生效
909
- ```
910
- - 运行 `flowmind init` 完成初始化
911
- - 配置资源连接、学习偏好、输出格式
912
- - 无需每次重复设置
913
-
914
- #### 5️⃣ 学习反馈机制(自我进化)
915
- ```
916
- 用户纠正 → 记录学习 → 自动应用 → 持续优化
917
- ```
918
- - **纠正学习**: "不对,用表格格式" → 自动记住
919
- - **场景学习**: "排查问题先查错误再查链路" → 记录工作流
920
- - **偏好学习**: "用中文回复" → 记录语言偏好
921
- - **自动应用**: 下次自动使用学习到的工作流
922
-
923
- #### 6️⃣ 可插拔组件架构(完整配置化)
924
- ```
925
- 组件类型 → 提供者接口 → 云服务适配器 → 通过配置切换
926
- ```
927
-
928
- **核心设计原则:**
929
- - 🔌 **提供者抽象** - 每种组件类型定义标准接口,提供者实现该接口
930
- - ⚙️ **配置驱动切换** - 修改 JSON 配置即可切换云服务商,零代码改动
931
- - 🔗 **MCP 向后兼容** - 现有 MCP 服务器配置可无缝继续使用
932
- - 🧩 **自定义扩展** - 注册自定义适配器,接入私有或第三方服务
933
-
934
- **组件生命周期:**
935
- ```
936
- flowmind init → 加载 component-config.json → 注册适配器 → 激活默认提供者
937
-
938
- 技能调用 ComponentRegistry.getAdapter(type)
939
-
940
- 适配器委托给 MCP 服务器或自定义实现
941
- ```
942
-
943
- **MCP 服务器与组件映射:**
944
-
945
- | MCP 服务器 | 组件类型 | 提供者 |
946
- |------------|----------|--------|
947
- | `friday-sls-logs` | `logService` | `aliyun-sls` |
948
- | `aliyun-dms-mcp-server` | `databaseManager` | `aliyun-dms` |
949
- | `friday-rds-redis-query` | `databaseQuery` | `aliyun-rds-query` |
950
- | `friday-aliyun-sz-rds-redis` | `redisMonitor` | `aliyun-redis` |
951
- | `yapi-mcp` | `apiDoc` | `yapi` |
952
- | `yuque-mcp` | `knowledgeBase` | `yuque` |
953
- | `friday-auto-flow` | `workflow` | `friday-flow` |
954
- | `friday-auto-report` | `report` | `friday-report` |
955
-
956
- ### 🛠️ 自定义适配器开发
957
-
958
- 创建自定义适配器,接入私有或第三方服务。
959
-
960
- **第一步:继承基础适配器**
961
-
962
- ```javascript
963
- // core/providers/custom/my-sls-adapter.js
964
- const LogServiceAdapter = require('../../adapters/log-service-adapter');
965
-
966
- class MyCustomSlsAdapter extends LogServiceAdapter {
967
- constructor(config = {}) {
968
- super('my-custom-sls', config);
969
- // 注册 MCP 工具名称映射
970
- this.registerTool('queryLogs', 'myQueryLogsTool');
971
- }
972
-
973
- get mcpServer() {
974
- return 'my-custom-mcp-server';
975
- }
976
-
977
- async queryLogs(params) {
978
- // 自定义实现
979
- return { mcpServer: this.mcpServer, tool: this.resolveTool('queryLogs'), params };
980
- }
981
- }
982
-
983
- module.exports = MyCustomSlsAdapter;
984
- ```
985
-
986
- **第二步:注册提供者工厂**
987
-
988
- ```javascript
989
- // 在初始化代码中
990
- const registry = new ComponentRegistry(config);
991
-
992
- registry.registerFactory('my-custom-sls', () => {
993
- const MyCustomSlsAdapter = require('./providers/custom/my-sls-adapter');
994
- return new MyCustomSlsAdapter(config.get('components.logService.providers.my-custom-sls'));
995
- });
996
- ```
997
-
998
- **第三步:配置提供者**
999
-
1000
- ```json
1001
- {
1002
- "components": {
1003
- "logService": {
1004
- "default": "my-custom-sls",
1005
- "providers": {
1006
- "my-custom-sls": {
1007
- "adapter": "my-custom-sls-adapter",
1008
- "enabled": true,
1009
- "mcpServer": "my-custom-mcp-server",
1010
- "config": {
1011
- "endpoint": "my-sls.example.com"
1012
- }
1013
- }
1014
- }
1015
- }
1016
- }
1017
- }
55
+ npx flowmind@latest doctor
56
+ npx flowmind@latest skills
1018
57
  ```
1019
58
 
1020
- **各组件类型的适配器接口要求:**
1021
-
1022
- | 组件类型 | 必须实现的方法 | 必须具备的能力 |
1023
- |----------|----------------|----------------|
1024
- | `logService` | `queryLogs()`, `listProjects()` | 日志查询与项目列表 |
1025
- | `databaseManager` | `listInstances()`, `executeScript()`, `searchDatabase()` | 实例管理与 SQL 执行 |
1026
- | `databaseQuery` | `queryExec()`, `fetchSource()`, `fetchTables()` | 数据库直查 |
1027
- | `redisMonitor` | `query()`, `queryRange()`, `getLabelValues()` | Prometheus 指标查询 |
1028
- | `apiDoc` | `searchApis()`, `saveApi()`, `getCategories()` | API 文档 CRUD |
1029
- | `knowledgeBase` | `getRepos()`, `getDocs()`, `createDoc()`, `updateDoc()` | 知识库 CRUD |
1030
- | `workflow` | `listPipelines()`, `startPipelineRun()` | 流水线管理 |
1031
- | `report` | `listBuilds()`, `getBuildInfo()` | 构建报告获取 |
59
+ ## 为什么它比直接写 Prompt 更稳
1032
60
 
1033
- ### 📦 配置迁移工具
61
+ - skill 提供稳定执行路径,而不是每次重新组织 prompt
62
+ - 显式反馈会沉淀成状态,而不是停留在聊天记录里
63
+ - CLI / MCP 入口让工作流更容易脚本化和复用
1034
64
 
1035
- 将现有 MCP 服务器配置迁移到新的组件架构。
65
+ ## 一个真实例子
1036
66
 
1037
67
  ```bash
1038
- # 预览迁移(干运行)
1039
- node scripts/migrate-config.js --dry-run
1040
-
1041
- # 生成迁移配置
1042
- node scripts/migrate-config.js
1043
-
1044
- # 指定自定义输出路径
1045
- node scripts/migrate-config.js --output ./my-config.json
1046
- ```
1047
-
1048
- **工具功能:**
1049
- 1. 从 `.claude/settings.local.json` 读取现有 MCP 服务器配置
1050
- 2. 使用默认映射表将 MCP 服务器映射到组件类型
1051
- 3. 生成结构化的 `component-config.json`
1052
-
1053
- **迁移输出示例:**
1054
- ```json
1055
- {
1056
- "version": "1.0.0",
1057
- "components": {
1058
- "logService": {
1059
- "default": "aliyun-sls",
1060
- "providers": {
1061
- "aliyun-sls": {
1062
- "adapter": "aliyun-sls-adapter",
1063
- "enabled": true,
1064
- "mcpServer": "friday-sls-logs"
1065
- }
1066
- }
1067
- }
1068
- }
1069
- }
1070
- ```
1071
-
1072
- ---
1073
-
1074
- ## 📈 影响与指标
1075
-
1076
- | 指标 | 使用 FlowMind 前 | 使用 FlowMind 后 |
1077
- |------|------------------|------------------|
1078
- | 重复指令 | 100% | ~5% |
1079
- | 工作流一致性 | 不稳定 | 98%+ |
1080
- | 问题排查时间 | 30+ 分钟 | 5 分钟 |
1081
- | 新人上手时间 | 2 周 | 2 天 |
1082
- | Token 消耗 | 高 | 降低 60%+ |
1083
- | 经验沉淀 | 无法保留 | 永久复用 |
1084
- | 设计决策质量 | 靠经验摸索 | 有据可依 |
1085
-
1086
- ---
1087
-
1088
- ## 🌟 社区共建
1089
-
1090
- **FlowMind 的核心理念:越多人使用,越智能!**
1091
-
1092
- ### 为什么需要你的参与?
1093
-
1094
- ```
1095
- 每个人的工作习惯 → 汇聚成智能知识库
1096
- 你的每一次使用 → 让 FlowMind 更懂开发者
1097
- 你的每一次纠正 → 帮助所有人提升效率
68
+ flowmind process --skill log-audit "查询 traceId abc123 的日志"
69
+ flowmind "下次用表格格式"
1098
70
  ```
1099
71
 
1100
- ### 如何参与共建?
1101
-
1102
- 1. **使用并反馈** - 用 FlowMind 完成日常工作,告诉我们哪里可以更好
1103
- 2. **分享工作流** - 将你定义的工作流分享给团队和社区
1104
- 3. **贡献代码** - 添加新技能、改进学习算法、优化体验
1105
- 4. **传播理念** - 让更多开发者知道 FlowMind
1106
-
1107
- ### 共建收益
1108
-
1109
- - 🚀 **个人提效** - 重复工作交给 FlowMind
1110
- - 🧠 **集体智慧** - 汇聚千万开发者的工作经验
1111
- - 🌍 **开源共享** - 所有学习成果开源共享
1112
- - 🤝 **社区认可** - 贡献者将被永久记录
1113
-
1114
- **让我们一起构建更智能的开发工具!**
1115
-
1116
- ---
1117
-
1118
- ## 🤝 贡献
1119
-
1120
- 欢迎贡献!详见 [CONTRIBUTING.md](CONTRIBUTING.md)。
1121
-
1122
- ### 贡献方式
1123
- - 🐛 报告 Bug
1124
- - 💡 建议功能
1125
- - 📝 改进文档
1126
- - 🛠️ 添加技能
1127
- - 🌍 翻译
1128
- - 🧪 编写测试
1129
-
1130
- ---
1131
-
1132
- ## 📄 许可证
1133
-
1134
- MIT 许可证 - 详见 [LICENSE](LICENSE)。
1135
-
1136
- ---
1137
-
1138
- ## 🎓 你的团队导师
1139
-
1140
- FlowMind 通过持续学习团队的实践经验,成为不同角色的得力助手:
1141
-
1142
- ### 👨‍💻 对开发人员:把控质量,设计全流程化
1143
-
1144
- - **全流程设计引导** - 从需求分析到架构设计,FlowMind 学习团队的设计模式,在每个环节提供经验支撑
1145
- - **编码质量把控** - 吸纳团队的 Code Review 标准和最佳实践,在编码阶段即时反馈
1146
- - **技术决策参考** - 基于历史项目经验,为技术选型和架构决策提供数据支撑
1147
-
1148
- ### 🧪 对测试人员:以 Review 驱动质量,以需求校准方向
1149
-
1150
- - **代码 Review 质量把控** - 学习团队的审查标准,辅助测试人员从代码层面发现潜在问题
1151
- - **需求核对与追溯** - 将需求与代码实现自动关联,确保测试覆盖完整,不遗漏边界场景
1152
- - **历史缺陷学习** - 从过往 Bug 模式中学习,提前识别高风险区域,精准分配测试资源
1153
-
1154
- ### 📦 对产品人员:以史为鉴,推演未来发展
72
+ 下次遇到相似请求时,FlowMind 可以从本地学习数据里复用这条显式偏好。
1155
73
 
1156
- - **历史设计推敲** - 梳理历史资源和设计演进脉络,帮助产品理解"为什么这样设计"
1157
- - **升级路径规划** - 基于历史迭代规律和技术架构约束,推演合理的功能演进方向
1158
- - **需求可行性评估** - 结合技术实现成本和历史经验,为产品决策提供参考依据
74
+ ## 按目标阅读
1159
75
 
1160
- > *FlowMind 不替代任何人——它将团队的设计智慧、质量标准和产品经验跨时间、跨角色地传承下去,让每个角色都能站在前人的肩膀上做出更好的决策。*
76
+ - 想看完整产品说明: [docs/guide.zh-CN.md](docs/guide.zh-CN.md)
77
+ - 想看 Claude Code、Codex、Cursor、MCP 接入: [docs/integration-guide.md](docs/integration-guide.md)
78
+ - 想先看终端演示: [demo/DEMO_CN.md](demo/DEMO_CN.md)
79
+ - 想看版本变化: [CHANGELOG.md](CHANGELOG.md)
1161
80
 
1162
- ---
1163
-
1164
- ## 🙏 致谢
1165
-
1166
- 基于以下技术构建:
1167
- - Claude AI - 智能核心
1168
- - MCP 协议 - 工具集成
1169
- - OpenSpec - 设计规范
1170
- - 开源社区 - 灵感与支持
81
+ ## 为什么首页改短了
1171
82
 
1172
- ---
83
+ npm 发布页更适合作为入口页,而不是整本使用手册。
84
+ 更完整的使用方式、系统阐述和架构说明已经下沉到上面的独立文档。
1173
85
 
1174
- ## 📞 联系方式
86
+ ## 贡献
1175
87
 
1176
- - **GitHub**: [github.com/Eleven-M/flowmind](https://github.com/Eleven-M/flowmind)
1177
- - **邮箱**: 13060993305@163.com
88
+ 欢迎提交 PR。先看 [CONTRIBUTING.md](CONTRIBUTING.md)
1178
89
 
1179
- ---
90
+ ## 许可证
1180
91
 
1181
- <div align="center">
1182
-
1183
- **[⬆ 回到顶部](#-flowmind)**
1184
-
1185
- 由 FlowMind 团队用 ❤️ 制作
1186
-
1187
- *"学习一次,永远流畅"*
1188
-
1189
- </div>
92
+ MIT,见 [LICENSE](LICENSE)。