@roarpeng/graphflow 0.6.6 → 0.6.15
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/CHANGELOG.md +106 -0
- package/README.md +166 -303
- package/dist/config/defaults.d.ts +6 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +20 -7
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/loader.d.ts +8 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +42 -9
- package/dist/config/loader.js.map +1 -1
- package/dist/config/paths.d.ts.map +1 -1
- package/dist/config/paths.js +6 -5
- package/dist/config/paths.js.map +1 -1
- package/dist/config/resolve.d.ts +3 -0
- package/dist/config/resolve.d.ts.map +1 -1
- package/dist/config/resolve.js +58 -24
- package/dist/config/resolve.js.map +1 -1
- package/dist/config/secrets.d.ts +6 -1
- package/dist/config/secrets.d.ts.map +1 -1
- package/dist/config/secrets.js +9 -1
- package/dist/config/secrets.js.map +1 -1
- package/dist/core/dag-engine.d.ts.map +1 -1
- package/dist/core/dag-engine.js +9 -3
- package/dist/core/dag-engine.js.map +1 -1
- package/dist/core/errors.d.ts +28 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +55 -2
- package/dist/core/errors.js.map +1 -1
- package/dist/core/orchestrator.d.ts.map +1 -1
- package/dist/core/orchestrator.js +16 -0
- package/dist/core/orchestrator.js.map +1 -1
- package/dist/graph/file-indexer.d.ts +2 -0
- package/dist/graph/file-indexer.d.ts.map +1 -1
- package/dist/graph/file-indexer.js +65 -36
- package/dist/graph/file-indexer.js.map +1 -1
- package/dist/graph/graph-utils.d.ts +4 -0
- package/dist/graph/graph-utils.d.ts.map +1 -0
- package/dist/graph/graph-utils.js +29 -0
- package/dist/graph/graph-utils.js.map +1 -0
- package/dist/graph/graphify-client.d.ts +2 -1
- package/dist/graph/graphify-client.d.ts.map +1 -1
- package/dist/graph/graphify-client.js +6 -17
- package/dist/graph/graphify-client.js.map +1 -1
- package/dist/graph/graphify-file-client.js +3 -3
- package/dist/graph/graphify-file-client.js.map +1 -1
- package/dist/graph/snapshot-view.d.ts +26 -0
- package/dist/graph/snapshot-view.d.ts.map +1 -0
- package/dist/graph/snapshot-view.js +228 -0
- package/dist/graph/snapshot-view.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/integrations/agent-mcp-installer.d.ts +3 -0
- package/dist/integrations/agent-mcp-installer.d.ts.map +1 -1
- package/dist/integrations/agent-mcp-installer.js +7 -5
- package/dist/integrations/agent-mcp-installer.js.map +1 -1
- package/dist/learning/episodic-memory.d.ts.map +1 -1
- package/dist/learning/episodic-memory.js +2 -8
- package/dist/learning/episodic-memory.js.map +1 -1
- package/dist/learning/reflector.d.ts.map +1 -1
- package/dist/learning/reflector.js +2 -8
- package/dist/learning/reflector.js.map +1 -1
- package/dist/learning/skill-evolution.d.ts +16 -0
- package/dist/learning/skill-evolution.d.ts.map +1 -0
- package/dist/learning/skill-evolution.js +154 -0
- package/dist/learning/skill-evolution.js.map +1 -0
- package/dist/learning/skill-flywheel.d.ts +4 -47
- package/dist/learning/skill-flywheel.d.ts.map +1 -1
- package/dist/learning/skill-flywheel.js +44 -337
- package/dist/learning/skill-flywheel.js.map +1 -1
- package/dist/learning/skill-store.d.ts +20 -0
- package/dist/learning/skill-store.d.ts.map +1 -0
- package/dist/learning/skill-store.js +170 -0
- package/dist/learning/skill-store.js.map +1 -0
- package/dist/learning/skill-types.d.ts +43 -0
- package/dist/learning/skill-types.d.ts.map +1 -0
- package/dist/learning/skill-types.js +6 -0
- package/dist/learning/skill-types.js.map +1 -0
- package/dist/learning/vector-store.d.ts +2 -0
- package/dist/learning/vector-store.d.ts.map +1 -1
- package/dist/learning/vector-store.js +4 -0
- package/dist/learning/vector-store.js.map +1 -1
- package/dist/routing/provider-executor.d.ts.map +1 -1
- package/dist/routing/provider-executor.js +5 -4
- package/dist/routing/provider-executor.js.map +1 -1
- package/dist/surfaces/cli/init.d.ts.map +1 -1
- package/dist/surfaces/cli/init.js +25 -39
- package/dist/surfaces/cli/init.js.map +1 -1
- package/dist/surfaces/cli/runtime/env.d.ts +8 -0
- package/dist/surfaces/cli/runtime/env.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/env.js +134 -0
- package/dist/surfaces/cli/runtime/env.js.map +1 -0
- package/dist/surfaces/cli/runtime/facade.d.ts +45 -0
- package/dist/surfaces/cli/runtime/facade.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/facade.js +34 -0
- package/dist/surfaces/cli/runtime/facade.js.map +1 -0
- package/dist/surfaces/cli/runtime/graph.d.ts +25 -0
- package/dist/surfaces/cli/runtime/graph.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/graph.js +416 -0
- package/dist/surfaces/cli/runtime/graph.js.map +1 -0
- package/dist/surfaces/cli/runtime/helpers.d.ts +30 -0
- package/dist/surfaces/cli/runtime/helpers.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/helpers.js +159 -0
- package/dist/surfaces/cli/runtime/helpers.js.map +1 -0
- package/dist/surfaces/cli/runtime/panel.d.ts +5 -0
- package/dist/surfaces/cli/runtime/panel.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/panel.js +91 -0
- package/dist/surfaces/cli/runtime/panel.js.map +1 -0
- package/dist/surfaces/cli/runtime/routing.d.ts +11 -0
- package/dist/surfaces/cli/runtime/routing.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/routing.js +233 -0
- package/dist/surfaces/cli/runtime/routing.js.map +1 -0
- package/dist/surfaces/cli/runtime/settings.d.ts +6 -0
- package/dist/surfaces/cli/runtime/settings.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/settings.js +334 -0
- package/dist/surfaces/cli/runtime/settings.js.map +1 -0
- package/dist/surfaces/cli/runtime/types.d.ts +218 -0
- package/dist/surfaces/cli/runtime/types.d.ts.map +1 -0
- package/dist/surfaces/cli/runtime/types.js +3 -0
- package/dist/surfaces/cli/runtime/types.js.map +1 -0
- package/dist/surfaces/cli/runtime.d.ts +8 -257
- package/dist/surfaces/cli/runtime.d.ts.map +1 -1
- package/dist/surfaces/cli/runtime.js +52 -1264
- package/dist/surfaces/cli/runtime.js.map +1 -1
- package/dist/surfaces/mcp/server.js +18 -0
- package/dist/surfaces/mcp/server.js.map +1 -1
- package/dist/utils/hash.d.ts +11 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +27 -0
- package/dist/utils/hash.js.map +1 -0
- package/package.json +3 -1
- package/scripts/safe-postinstall.cjs +6 -0
package/README.md
CHANGED
|
@@ -2,39 +2,58 @@
|
|
|
2
2
|
|
|
3
3
|
A Context-Aware Multi-Agent Orchestration Engine.
|
|
4
4
|
|
|
5
|
-
GraphFlow 是一个基于 TypeScript/Node.js
|
|
6
|
-
|
|
7
|
-
##
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
GraphFlow 是一个基于 TypeScript/Node.js 的多智能体编排引擎,将 **Graphify 式知识图谱** 与 **Superpowers 式任务编排** 整合为可本地运行的上下文层:自动建图、压缩检索、规划执行、经验沉淀,并通过 CLI、MCP 与 VS Code 扩展对外暴露。
|
|
6
|
+
|
|
7
|
+
## 当前能力总览(v0.6.13)
|
|
8
|
+
|
|
9
|
+
| 能力域 | 说明 |
|
|
10
|
+
| --- | --- |
|
|
11
|
+
| **任务编排** | 按任务复杂度分流 simple / complex;DAG 并行执行、校验、重试、集成轮 |
|
|
12
|
+
| **模型路由** | Smart / Economy 双 tier;多 provider 健康探测与 fallback(OpenAI、Anthropic、百炼、豆包、OpenBMB) |
|
|
13
|
+
| **知识图谱** | 工作区 AST 索引(TS/JS/Python/Rust/Go/C/C++);File / Module / Symbol 节点 + 依赖/引用/定义边 |
|
|
14
|
+
| **上下文压缩** | L1/L2/L3 分层锚点;近无损打包;可选向量召回 + RRF 融合;默认 `maxContextTokens: 1500` |
|
|
15
|
+
| **持续建图** | 默认 `autoIndexOnSave`;preview / run 前按需增量索引(`hasPendingGraphIndexWork`) |
|
|
16
|
+
| **语义增强** | 可选 post-index LLM 语义 enrich;OpenBMB 本地 embedded 模式 |
|
|
17
|
+
| **学习飞轮** | Episodic Memory、Reflection、Skill 节点、nightly 学习、技能提示注入规划 |
|
|
18
|
+
| **Agent 接入** | CLI `--json`;MCP stdio(9 工具);Cursor / Claude Code 规则与示例配置 |
|
|
19
|
+
| **VS Code 扩展** | Settings、建图、路由测试、Context Preview、**知识图谱可视化**、Skill Insights、Chat Agent |
|
|
20
|
+
| **存储后端** | `file`(JSON)/ `memory` / `sqlite`(FTS5)/ `mcp-http`(Graphify) |
|
|
21
|
+
| **工程质量** | TypeScript strict;**41 测试文件 / 177 tests**;`npm run ci` 含扩展 esbuild 打包与 bundled runtime smoke |
|
|
10
22
|
|
|
11
23
|
### 一句话总结
|
|
12
24
|
|
|
13
|
-
> 从 task 描述出发,自动规划 → 路由模型 → 压缩图谱上下文(含向量召回)→
|
|
25
|
+
> 从 task 描述出发,自动规划 → 路由模型 → 压缩图谱上下文(含向量召回)→ 执行/校验/重试,并把经验沉淀回知识图谱;Coding Agent 通过 MCP/CLI 优先消费压缩上下文而非整库扫描。
|
|
14
26
|
|
|
15
|
-
### v0.6.6
|
|
27
|
+
### v0.6.7 – v0.6.13 近期演进
|
|
16
28
|
|
|
17
|
-
1.
|
|
18
|
-
|
|
19
|
-
|
|
29
|
+
1. **知识图谱可视化(v0.6.12–0.6.13)**
|
|
30
|
+
- 可读标签(文件名、符号名、目录组)、代码层 / 学习层 Tab
|
|
31
|
+
- 暗色面板、目录聚类着色、关系线型、缩放/平移
|
|
32
|
+
- 双击节点或「打开源文件」跳转源码行
|
|
33
|
+
- 布局归一化修复大图谱「只剩角落小点」问题
|
|
20
34
|
|
|
21
|
-
|
|
35
|
+
2. **持续静默建图(v0.6.11)**
|
|
36
|
+
- `autoIndexOnSave` 默认开启;保存文件后 debounce 增量索引
|
|
37
|
+
- 旧配置 `maxContextTokens: 400` 自动升级到 1500
|
|
22
38
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
39
|
+
3. **Runtime 模块化与扩展打包(v0.6.10)**
|
|
40
|
+
- `runtime/` 子模块 + `GraphFlowRuntimeModule` 类型校验
|
|
41
|
+
- VS Code 扩展 esbuild 单文件 bundle
|
|
26
42
|
|
|
27
|
-
|
|
43
|
+
4. **配置与健壮性(v0.6.7–0.6.9)**
|
|
44
|
+
- 全局配置优先(`~/.graphflow.config.json`)
|
|
45
|
+
- 损坏 JSON 容错;postinstall 需显式 `GRAPHFLOW_ENABLE_POSTINSTALL=1`
|
|
46
|
+
- 无工作区也可打开 Settings;CI 可复现 `npm ci`
|
|
28
47
|
|
|
29
|
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
48
|
+
5. **无 LLM 也能建图(v0.6.6 起)**
|
|
49
|
+
- Settings「建立图谱(无需 LLM)」或 `graph index` 即可生成结构图谱
|
|
50
|
+
- 可选「测试路由并建立图谱」在 LLM 连通后触发语义 enrich
|
|
32
51
|
|
|
33
|
-
|
|
52
|
+
### 发布信息
|
|
34
53
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
54
|
+
- 最新版本:**v0.6.13**(root + vscode-extension);npm:`@roarpeng/graphflow@0.6.13`
|
|
55
|
+
- **GitHub Release**:push 到 `main` 且 CI 通过后自动发布 VSIX(见 [Actions](https://github.com/Roarpeng/GraphFlow/actions))
|
|
56
|
+
- 变更日志:`CHANGELOG.md`
|
|
38
57
|
|
|
39
58
|
## 环境要求
|
|
40
59
|
|
|
@@ -42,184 +61,103 @@ GraphFlow 已演进为面向多 agent 协作的工程级编排 + 上下文引擎
|
|
|
42
61
|
2. npm >= 10
|
|
43
62
|
3. Windows / macOS / Linux 均可
|
|
44
63
|
|
|
45
|
-
## 5
|
|
46
|
-
|
|
47
|
-
在仓库根目录执行:
|
|
64
|
+
## 5 分钟本地试跑
|
|
48
65
|
|
|
49
66
|
```bash
|
|
50
67
|
npm install
|
|
51
|
-
npm run lint
|
|
52
|
-
npm run build
|
|
53
|
-
npm test
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
预期结果:
|
|
57
|
-
|
|
58
|
-
1. `lint` 无错误
|
|
59
|
-
2. `build` 成功
|
|
60
|
-
3. `vitest` 全量通过(当前应为 156+ tests / 37+ files passed)
|
|
61
|
-
|
|
62
|
-
可选一键 CI 本地校验:
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
68
|
npm run ci
|
|
66
69
|
```
|
|
67
70
|
|
|
71
|
+
预期:`lint` 无错误、`build` 成功、**177 tests** 通过、扩展 bundle 与 runtime smoke 通过。
|
|
72
|
+
|
|
68
73
|
## Agent 工具接入
|
|
69
74
|
|
|
70
|
-
GraphFlow
|
|
75
|
+
GraphFlow 支持两种对外接入方式:
|
|
71
76
|
|
|
72
|
-
1. CLI
|
|
73
|
-
2. MCP stdio server
|
|
77
|
+
1. **CLI 机器输出**:核心命令均支持 `--json`
|
|
78
|
+
2. **MCP stdio server**:Cursor、Claude Code 等可直接调用
|
|
74
79
|
|
|
75
|
-
|
|
80
|
+
本仓库启动 MCP:
|
|
76
81
|
|
|
77
82
|
```bash
|
|
78
83
|
npm run start:mcp
|
|
79
84
|
```
|
|
80
85
|
|
|
81
|
-
|
|
86
|
+
### MCP 工具一览
|
|
82
87
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
88
|
+
| 工具 | 用途 |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| `graphflow_preview_context` | 压缩任务相关上下文(优先调用) |
|
|
91
|
+
| `graphflow_plan` | 多步任务分解 |
|
|
92
|
+
| `graphflow_run` | 执行编排循环 |
|
|
93
|
+
| `graphflow_index` / `graphflow_rebuild` | 增量 / 全量建图 |
|
|
94
|
+
| `graphflow_inspect_graph` | 图谱快照与统计 |
|
|
95
|
+
| `graphflow_enrich_graph` | 语义增强 |
|
|
96
|
+
| `graphflow_skill_insights` | 技能学习洞察 |
|
|
97
|
+
| `graphflow_diagnose` | 路由健康诊断 |
|
|
98
|
+
| `graphflow_model_download` | OpenBMB 模型下载 |
|
|
86
99
|
|
|
87
|
-
CLI
|
|
100
|
+
CLI 示例:
|
|
88
101
|
|
|
89
102
|
```bash
|
|
90
|
-
npm run start -- --
|
|
91
|
-
npm run start -- --
|
|
103
|
+
npm run start -- plan "refactor planner and add tests" --json
|
|
104
|
+
npm run start -- context preview "orchestrator" --json
|
|
105
|
+
npm run start -- graph inspect --json
|
|
92
106
|
```
|
|
93
107
|
|
|
94
|
-
外部 agent
|
|
95
|
-
|
|
96
|
-
1. `AGENTS.md`
|
|
97
|
-
2. `CLAUDE.md`
|
|
98
|
-
3. `.cursor/rules/graphflow.mdc`
|
|
99
|
-
4. `docs/integrations/cursor.mcp.json`
|
|
100
|
-
5. `docs/integrations/claude-code.mcp.json`
|
|
101
|
-
6. `docs/integrations/claude-desktop-config.json`
|
|
108
|
+
外部 agent 约定文件:`AGENTS.md`、`CLAUDE.md`、`.cursor/rules/graphflow.mdc`、`docs/integrations/*.json`
|
|
102
109
|
|
|
103
110
|
## 本地功能验证(CLI)
|
|
104
111
|
|
|
105
|
-
###
|
|
112
|
+
### 图谱索引
|
|
106
113
|
|
|
107
114
|
```bash
|
|
108
115
|
npm run start -- graph index .
|
|
109
116
|
```
|
|
110
117
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
```text
|
|
114
|
-
indexedFiles=52; indexedSymbols=98
|
|
115
|
-
```
|
|
118
|
+
预期:`indexedFiles=…; indexedSymbols=…`
|
|
116
119
|
|
|
117
|
-
###
|
|
120
|
+
### 上下文压缩预览
|
|
118
121
|
|
|
119
122
|
```bash
|
|
120
123
|
npm run start -- context preview "orchestrator"
|
|
121
124
|
```
|
|
122
125
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
```text
|
|
126
|
-
summary=6; anchors=6; tokens=98; truncated=false; L1=3; L2=2; L3=1
|
|
127
|
-
```
|
|
126
|
+
预期:`summary=…; anchors=…; tokens=…`(相对原始上下文通常可节省 **90%+ token**)
|
|
128
127
|
|
|
129
|
-
###
|
|
128
|
+
### 执行任务 / 规划
|
|
130
129
|
|
|
131
130
|
```bash
|
|
132
131
|
npm run start -- run "update readme and add tests"
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
说明:该命令会根据任务复杂度自动走 simple 或 complex 工作流。
|
|
136
|
-
|
|
137
|
-
### 4) 规划与头脑风暴
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
132
|
npm run start -- plan "update readme and add tests and refactor architecture module"
|
|
141
133
|
```
|
|
142
134
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
```text
|
|
146
|
-
mode=complex; ideas=...; plan=task-1... | task-2... | task-3...
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### 5) 动态路由诊断
|
|
135
|
+
### 路由诊断 / 学习 / 洞察
|
|
150
136
|
|
|
151
137
|
```bash
|
|
152
138
|
npm run start -- route diagnose
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
预期输出示例:
|
|
156
|
-
|
|
157
|
-
```text
|
|
158
|
-
dynamicRouting=on; health=openai:true,...; planner=openai/...; worker=openai/...
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
### 6) 学习夜跑
|
|
162
|
-
|
|
163
|
-
```bash
|
|
164
139
|
npm run start -- learn nightly
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
预期输出示例:
|
|
168
|
-
|
|
169
|
-
```text
|
|
170
|
-
events=12; passRate=0.833; avgTokens=118.0; canary=allow; dataset=tmp/learning-dataset.jsonl
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### 7) 图谱快照洞察
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
140
|
npm run start -- graph inspect
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
预期输出示例:
|
|
180
|
-
|
|
181
|
-
```text
|
|
182
|
-
nodes=120; edges=184; types=File:20,Symbol:54,...; relations=defines:44,imports:20,...
|
|
183
|
-
```
|
|
184
|
-
|
|
185
|
-
### 8) 技能洞察
|
|
186
|
-
|
|
187
|
-
```bash
|
|
188
141
|
npm run start -- skill insights
|
|
189
142
|
```
|
|
190
143
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
```text
|
|
194
|
-
source=graph-store; transport=file; count=8; top=add tests:4/6,refactor planner:3/4
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
## v0.4 新能力使用指南
|
|
144
|
+
## 进阶能力
|
|
198
145
|
|
|
199
|
-
###
|
|
200
|
-
|
|
201
|
-
将 `graphflow.config.json` 的 `graphPolicy` 改为:
|
|
146
|
+
### SQLite / FTS5 后端
|
|
202
147
|
|
|
203
148
|
```json
|
|
204
149
|
{
|
|
205
150
|
"graphPolicy": {
|
|
206
|
-
"enableAutoBuild": true,
|
|
207
151
|
"transport": "sqlite",
|
|
208
152
|
"graphStorePath": "tmp/graphflow-graph.sqlite",
|
|
209
|
-
"maxContextTokens":
|
|
153
|
+
"maxContextTokens": 1500
|
|
210
154
|
}
|
|
211
155
|
}
|
|
212
156
|
```
|
|
213
157
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
1. WAL 模式 + FTS5 全文索引,关键词查询 O(log n)
|
|
217
|
-
2. 边表三索引(from / to / relation),`getNeighbors` O(度)
|
|
218
|
-
3. 与 `file` / `memory` transport 接口完全一致,零业务代码改动
|
|
219
|
-
|
|
220
|
-
### 2) 启用向量召回 + RRF 双路融合
|
|
158
|
+
WAL + FTS5 全文索引;与 `file` / `memory` 接口一致。
|
|
221
159
|
|
|
222
|
-
|
|
160
|
+
### 向量召回 + RRF 融合
|
|
223
161
|
|
|
224
162
|
```ts
|
|
225
163
|
import { createHashEmbeddingProvider } from "graphflow/dist/learning/embeddings";
|
|
@@ -228,222 +166,147 @@ const pkg = await buildLayeredContextPackage(client, query, {
|
|
|
228
166
|
enableVectorRecall: true,
|
|
229
167
|
embeddingProvider: createHashEmbeddingProvider(),
|
|
230
168
|
vectorTopK: 8,
|
|
231
|
-
vectorMinSimilarity: 0.2,
|
|
232
|
-
});
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
切换到 OpenAI 真向量:
|
|
236
|
-
|
|
237
|
-
```ts
|
|
238
|
-
import { createOpenAiEmbeddingProvider } from "graphflow/dist/learning/embeddings";
|
|
239
|
-
|
|
240
|
-
const provider = createOpenAiEmbeddingProvider({
|
|
241
|
-
apiKey: process.env.OPENAI_API_KEY!,
|
|
242
|
-
model: "text-embedding-3-small",
|
|
243
169
|
});
|
|
244
170
|
```
|
|
245
171
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
### 3) Episodic Memory + Reflection
|
|
249
|
-
|
|
250
|
-
在 `orchestrate(...)` 选项里打开:
|
|
172
|
+
### Episodic Memory + Reflection
|
|
251
173
|
|
|
252
174
|
```ts
|
|
253
175
|
const run = await orchestrate(
|
|
254
176
|
{ task: "refactor planner module and add tests" },
|
|
255
|
-
{
|
|
256
|
-
graphClient,
|
|
257
|
-
enableEpisodicMemory: true,
|
|
258
|
-
enableGraphContextInPrompt: true,
|
|
259
|
-
}
|
|
177
|
+
{ graphClient, enableEpisodicMemory: true, enableGraphContextInPrompt: true }
|
|
260
178
|
);
|
|
261
|
-
|
|
262
|
-
console.log(run.episodeId); // "episode:xxx"
|
|
263
|
-
console.log(run.similarEpisodes); // 历史相似 task 的 keyDecisions
|
|
264
179
|
```
|
|
265
180
|
|
|
266
|
-
|
|
181
|
+
每次 task 写入 Episode;相似 task 注入历史决策;`learn nightly` 合成 Lesson 节点。
|
|
182
|
+
|
|
183
|
+
### 跨语言 AST 索引
|
|
184
|
+
|
|
185
|
+
| 语言 | 扩展 |
|
|
186
|
+
| --- | --- |
|
|
187
|
+
| TypeScript / JavaScript | `.ts .tsx .js .jsx` |
|
|
188
|
+
| Python | `.py` |
|
|
189
|
+
| Rust | `.rs` |
|
|
190
|
+
| Go | `.go` |
|
|
191
|
+
| C / C++ | `.c .h .cc .cpp .cxx .hpp .hxx` |
|
|
267
192
|
|
|
268
|
-
|
|
269
|
-
2. 复现相似 task 时,Top-K 历史决策自动注入 PromptContext.extraInstructions
|
|
270
|
-
3. `learn nightly` 调用 reflector:将多次成功 episode 聚类合成 `Lesson` 节点 + `improves` 边,可被技能提示复用
|
|
193
|
+
通过 `graphPolicy.includeExtensions` 限制扫描范围。
|
|
271
194
|
|
|
272
|
-
|
|
195
|
+
## 配置文件
|
|
273
196
|
|
|
274
|
-
|
|
197
|
+
默认:`graphflow.config.json`(也可使用 `~/.graphflow.config.json` 全局配置)。
|
|
275
198
|
|
|
276
199
|
```bash
|
|
277
|
-
|
|
200
|
+
cp graphflow.config.example.json graphflow.config.json
|
|
278
201
|
```
|
|
279
202
|
|
|
280
|
-
|
|
203
|
+
关键项:
|
|
281
204
|
|
|
282
|
-
|
|
|
283
|
-
| --- | --- |
|
|
284
|
-
|
|
|
285
|
-
|
|
|
286
|
-
|
|
|
287
|
-
|
|
|
288
|
-
|
|
|
205
|
+
| 配置 | 说明 |
|
|
206
|
+
| --- | --- |
|
|
207
|
+
| `graphPolicy.transport` | `file` / `memory` / `sqlite` / `mcp-http` |
|
|
208
|
+
| `graphPolicy.graphStorePath` | JSON 或 `.sqlite` 路径 |
|
|
209
|
+
| `graphPolicy.maxContextTokens` | 压缩上下文预算(默认 **1500**) |
|
|
210
|
+
| `graphPolicy.autoIndexOnSave` | 保存后增量索引(默认 **true**) |
|
|
211
|
+
| `graphPolicy.autoIndexOnPreview` / `autoIndexOnRun` | preview / run 前自动索引 |
|
|
212
|
+
| `graphPolicy.enableNearLosslessMode` | 近无损上下文打包 |
|
|
213
|
+
| `graphPolicy.layerQuota` | L1/L2/L3 锚点配额 |
|
|
214
|
+
| `routingPolicy.enableDynamicRouting` | provider 健康路由 |
|
|
215
|
+
| `skillPolicy.enableSkillFlywheel` | 技能飞轮 |
|
|
289
216
|
|
|
290
|
-
|
|
217
|
+
## VS Code 扩展
|
|
291
218
|
|
|
292
|
-
|
|
219
|
+
### 命令面板
|
|
293
220
|
|
|
294
|
-
|
|
221
|
+
| 命令 | 说明 |
|
|
222
|
+
| --- | --- |
|
|
223
|
+
| GraphFlow: Show Settings | 配置、建图、路由测试 |
|
|
224
|
+
| GraphFlow: Show Graph | **知识图谱可视化**(分层、搜索、跳转源码) |
|
|
225
|
+
| GraphFlow: Preview Context | 上下文压缩与 Token Budget |
|
|
226
|
+
| GraphFlow: Plan & Brainstorm | 任务规划 |
|
|
227
|
+
| GraphFlow: Run Task | 执行任务 |
|
|
228
|
+
| GraphFlow: Skill Insights | 技能学习面板 |
|
|
229
|
+
| GraphFlow: Enrich Graph | 语义增强 |
|
|
230
|
+
| GraphFlow: Install MCP | 注入 MCP 配置 |
|
|
295
231
|
|
|
296
|
-
|
|
232
|
+
Chat Agent(`@graphflow`):`/run`、`/plan`、`/graph`、`/skills`、`/diagnose`、`/learn`、`/history`
|
|
297
233
|
|
|
298
|
-
|
|
234
|
+
### Settings 推荐流程
|
|
299
235
|
|
|
300
|
-
|
|
236
|
+
1. 填写 Graph Store Path → **Save Settings**
|
|
237
|
+
2. **建立图谱(无需 LLM)** → 生成结构图谱
|
|
238
|
+
3. (可选)配置 Provider → **测试路由并建立图谱** → 语义 enrich
|
|
301
239
|
|
|
302
|
-
|
|
303
|
-
copy graphflow.config.example.json graphflow.config.json
|
|
304
|
-
```
|
|
240
|
+
其它建图入口:`graph index` CLI、MCP `graphflow_index`、`autoIndexOnPreview` / `autoIndexOnRun` / `autoIndexOnSave`
|
|
305
241
|
|
|
306
|
-
|
|
242
|
+
### 开发模式
|
|
307
243
|
|
|
308
244
|
```bash
|
|
309
|
-
|
|
245
|
+
cd vscode-extension
|
|
246
|
+
npm install
|
|
247
|
+
npm run build
|
|
310
248
|
```
|
|
311
249
|
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
- `sqlite`:SQLite + FTS5 后端(v0.4 新增,适合大型工作区与跨会话持久化)
|
|
318
|
-
- `mcp-http`:连接 Graphify MCP HTTP 服务
|
|
319
|
-
2. `graphPolicy.graphStorePath`
|
|
320
|
-
- `file` transport 的 JSON 路径,或 `sqlite` transport 的 `.sqlite` 路径
|
|
321
|
-
2. `graphPolicy.enableNearLosslessMode`
|
|
322
|
-
- 开启后启用近无损上下文打包
|
|
323
|
-
3. `graphPolicy.autoIndexOnPreview`
|
|
324
|
-
- `context preview` 前自动索引工作区
|
|
325
|
-
4. `graphPolicy.autoIndexOnRun`
|
|
326
|
-
- `run` 前自动索引工作区
|
|
327
|
-
5. `graphPolicy.layerQuota`
|
|
328
|
-
- 控制 L1/L2/L3 锚点配额
|
|
329
|
-
6. `learningPolicy.exportPath`
|
|
330
|
-
- 学习样本导出路径
|
|
331
|
-
7. `learningPolicy.eventsPath`
|
|
332
|
-
- 运行反馈事件日志路径(用于 nightly 学习)
|
|
333
|
-
8. `learningPolicy.summaryPath`
|
|
334
|
-
- 学习汇总指标路径
|
|
335
|
-
9. `routingPolicy.enableDynamicRouting`
|
|
336
|
-
- 启用按 provider 健康状态的自动路由
|
|
337
|
-
10. `routingPolicy.requireApiKeyForHealthy`
|
|
338
|
-
- 若开启,缺少 apiKey 的 provider 会被标记为不健康并触发 fallback
|
|
339
|
-
11. `routingPolicy.providerPriority`
|
|
340
|
-
- 设置 fallback 优先级,例如 `["anthropic", "openai", "bailian", "doubao"]`
|
|
341
|
-
12. `skillPolicy.enableSkillFlywheel`
|
|
342
|
-
- 开启技能飞轮(技能抽取、技能连接、技能提示复用)
|
|
343
|
-
13. `skillPolicy.maxSkillHints`
|
|
344
|
-
- 每次规划注入的技能提示上限
|
|
345
|
-
|
|
346
|
-
## 本地测试验收清单
|
|
347
|
-
|
|
348
|
-
你可以按下面清单判断“本地可用”:
|
|
349
|
-
|
|
350
|
-
1. 质量门禁通过:`npm run lint && npm run build && npm test`
|
|
351
|
-
2. `graph index` 返回 `indexedFiles > 0`
|
|
352
|
-
3. `context preview` 返回 `summary > 0` 且 `anchors > 0`
|
|
353
|
-
4. `run "..."` 能返回正常执行输出
|
|
354
|
-
5. `plan "..."` 返回 `mode=...; ideas=...; plan=...`
|
|
355
|
-
|
|
356
|
-
## 正式使用测试
|
|
357
|
-
|
|
358
|
-
正式使用测试脚本(含通过标准)见:
|
|
359
|
-
|
|
360
|
-
1. `docs/testing/2026-05-28-formal-usage-test-plan.md`
|
|
361
|
-
2. `docs/testing/2026-05-28-formal-usage-test-report.md`
|
|
362
|
-
|
|
363
|
-
## VS Code Settings 配置与建图
|
|
364
|
-
|
|
365
|
-
打开命令面板 → **GraphFlow: Show Settings**,推荐流程:
|
|
366
|
-
|
|
367
|
-
1. 填写 **Graph Store Path** 等基础项,点击 **Save Settings**。
|
|
368
|
-
2. 点击 **建立图谱(无需 LLM)**:生成结构图谱,不依赖 API Key。
|
|
369
|
-
3. (可选)配置 Provider / API Key / Base URL 与 near-lossless、auto index 开关后,点击 **测试路由并建立图谱**:验证 Smart / Economy 连通性,通过后自动索引并可运行语义提取。
|
|
370
|
-
|
|
371
|
-
其它建图入口:`graph index` CLI、MCP `graphflow_index`、`autoIndexOnPreview` / `autoIndexOnRun` / `autoIndexOnSave`、安装后轻量 bootstrap 索引。
|
|
372
|
-
|
|
373
|
-
## VS Code 扩展本地试用
|
|
374
|
-
|
|
375
|
-
### 方式 A:安装已打包 VSIX
|
|
250
|
+
在 VS Code 中 `F5` 启动 Extension Development Host。
|
|
251
|
+
|
|
252
|
+
### 安装 VSIX
|
|
253
|
+
|
|
254
|
+
从 [GitHub Releases](https://github.com/Roarpeng/GraphFlow/releases) 下载最新 VSIX,或本地:
|
|
376
255
|
|
|
377
256
|
```bash
|
|
378
|
-
|
|
257
|
+
cd vscode-extension && npm run package
|
|
258
|
+
code --install-extension artifacts/graphflow-vscode-*.vsix
|
|
379
259
|
```
|
|
380
260
|
|
|
381
|
-
|
|
261
|
+
## 本地验收清单
|
|
382
262
|
|
|
383
|
-
1. `
|
|
384
|
-
2. `
|
|
385
|
-
3. `
|
|
386
|
-
4.
|
|
387
|
-
5. `
|
|
263
|
+
1. `npm run ci` 全绿
|
|
264
|
+
2. `graph index` → `indexedFiles > 0`
|
|
265
|
+
3. `context preview` → `summary > 0` 且 `anchors > 0`
|
|
266
|
+
4. VS Code **Show Graph** → 画布正常显示节点聚类(非角落小点)
|
|
267
|
+
5. `plan` / `run` 返回正常输出
|
|
388
268
|
|
|
389
|
-
|
|
269
|
+
正式测试文档:`docs/testing/2026-05-28-formal-usage-test-plan.md`
|
|
390
270
|
|
|
391
|
-
|
|
392
|
-
2. `/plan <task>`
|
|
393
|
-
3. `/history`
|
|
394
|
-
4. `/diagnose`
|
|
395
|
-
5. `/learn`
|
|
396
|
-
6. `/graph`
|
|
397
|
-
7. `/skills`
|
|
271
|
+
## 常见问题
|
|
398
272
|
|
|
399
|
-
|
|
273
|
+
**`context preview` 返回 0 anchors**
|
|
400
274
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
3. 不需要克隆 GraphFlow 仓库即可使用插件核心能力
|
|
275
|
+
- 先执行 `graph index` 或 Settings 建图
|
|
276
|
+
- 检查查询词是否命中代码符号(如 `orchestrator`、`planner`)
|
|
404
277
|
|
|
405
|
-
|
|
278
|
+
**知识图谱面板空白或只有小点**
|
|
406
279
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
npm install
|
|
410
|
-
npm run build
|
|
411
|
-
```
|
|
280
|
+
- 升级到 **v0.6.13+** 并重载窗口
|
|
281
|
+
- 点击画布工具栏 **「适应」**
|
|
412
282
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
## 常见问题
|
|
283
|
+
**API Key 未配置**
|
|
416
284
|
|
|
417
|
-
|
|
418
|
-
- 先执行 `npm run start -- graph index .`
|
|
419
|
-
- 检查查询词是否命中现有代码符号(例如 `orchestrator`, `runtime`, `planner`)
|
|
285
|
+
- 在 `graphflow.config.json` 配置 provider `apiKey`,支持 `${ENV_VAR}` 占位
|
|
420
286
|
|
|
421
|
-
|
|
422
|
-
- 确认目录 `artifacts/` 已存在
|
|
423
|
-
- 在 `vscode-extension` 目录执行 `npm run package`
|
|
287
|
+
**无 LLM 时能用吗**
|
|
424
288
|
|
|
425
|
-
|
|
426
|
-
- 在 `graphflow.config.json` 中配置对应 provider 的 `apiKey`
|
|
427
|
-
- `graphflow.config.json` 与示例模板支持 `${ENV_VAR}` 环境变量占位写法
|
|
289
|
+
- 可以:结构索引、图谱可视化、context preview(基于结构图谱)、MCP `graphflow_inspect_graph` 均不强制 LLM
|
|
428
290
|
|
|
429
|
-
##
|
|
291
|
+
## 项目结构
|
|
430
292
|
|
|
431
293
|
```text
|
|
432
294
|
GraphFlow/
|
|
433
295
|
├── src/
|
|
434
|
-
│ ├── core/
|
|
435
|
-
│ ├── graph/
|
|
436
|
-
│ ├── routing/
|
|
437
|
-
│ ├── learning/
|
|
438
|
-
│ └── surfaces/
|
|
439
|
-
├──
|
|
440
|
-
|
|
441
|
-
├──
|
|
442
|
-
|
|
296
|
+
│ ├── core/ # 编排核心类型
|
|
297
|
+
│ ├── graph/ # 索引、上下文切片、snapshot-view
|
|
298
|
+
│ ├── routing/ # 模型路由与健康探测
|
|
299
|
+
│ ├── learning/ # 向量、episode、skill
|
|
300
|
+
│ └── surfaces/
|
|
301
|
+
│ ├── cli/ # CLI + runtime 子模块
|
|
302
|
+
│ └── mcp/ # MCP server
|
|
303
|
+
├── tests/ # 41 文件 / 177 tests
|
|
304
|
+
├── vscode-extension/ # VS Code 面板与命令
|
|
305
|
+
├── docs/
|
|
306
|
+
└── CHANGELOG.md
|
|
443
307
|
```
|
|
444
308
|
|
|
445
309
|
## 版本与变更
|
|
446
310
|
|
|
447
|
-
|
|
448
|
-
2.
|
|
449
|
-
3. License:`LICENSE`
|
|
311
|
+
- 变更日志:`CHANGELOG.md`
|
|
312
|
+
- License:Apache-2.0
|
|
@@ -10,6 +10,12 @@ export declare const SCAFFOLD_TIERS: {
|
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
export declare const DEFAULT_EMBEDDING_MODEL = "Xenova/bge-base-zh-v1.5";
|
|
13
|
+
export declare const DEFAULT_MAX_CONTEXT_TOKENS = 1500;
|
|
14
|
+
/** Unified output directory for all knowledge-graph artifacts. */
|
|
15
|
+
export declare const DEFAULT_OUTPUT_DIR = "graphflow-out";
|
|
16
|
+
/** Pre-v0.6.9 default; upgraded automatically when still present in saved configs. */
|
|
17
|
+
export declare const LEGACY_MAX_CONTEXT_TOKENS = 400;
|
|
18
|
+
export declare function resolveMaxContextTokens(value?: number): number;
|
|
13
19
|
export declare function getDefaultConfig(): GraphFlowConfig;
|
|
14
20
|
/** Minimal overlay written by `graphflow init`; inherits providers/tiers from root config. */
|
|
15
21
|
export declare function getDefaultOverlayConfig(): GraphFlowConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,eAAO,MAAM,cAAc;;;;;;;;;CAGjB,CAAC;AAEX,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAGhD,eAAO,MAAM,cAAc;;;;;;;;;CAGjB,CAAC;AAEX,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AACjE,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAC/C,kEAAkE;AAClE,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAClD,sFAAsF;AACtF,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAE7C,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK9D;AAED,wBAAgB,gBAAgB,IAAI,eAAe,CA6DlD;AAED,8FAA8F;AAC9F,wBAAgB,uBAAuB,IAAI,eAAe,CAUzD"}
|