jarvis-agent-factory 3.7.0 → 3.7.2
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.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
# Jarvis Agent Factory · 贾维斯智能体工厂
|
|
2
2
|
|
|
3
3
|
[](./LICENSE)
|
|
4
|
-
[](https://gitee.com/wujl1124/JarvisAgentFactory/releases)
|
|
5
5
|
<br>**简体中文** | [English](./README_EN.md)
|
|
6
6
|
|
|
7
7
|
一套跨平台的多智能体(Multi-Agent)AI 编程助手配置集,定义了一条**从想法到交付的完整软件开发流水线**。支持 Claude Code、OpenCode、Codex 三平台,共享同一套工作流规范与技能体系。
|
|
8
8
|
|
|
9
|
-
> **
|
|
9
|
+
> **v3.7.0** — MCP 编排引擎 + 硬约束状态机 + 三平台钩子驱动 + npm CLI 一键部署
|
|
10
10
|
|
|
11
11
|
## 核心概念
|
|
12
12
|
|
|
@@ -48,6 +48,41 @@
|
|
|
48
48
|
|
|
49
49
|
失败自动路由到修复闭环,最多 2 轮;第 3 轮仍失败标记 BLOCKED 并保留产物。
|
|
50
50
|
|
|
51
|
+
## 编排引擎(v3)
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
提示词工程(软约束)→ 引擎驱动(硬约束)
|
|
55
|
+
"请勿跳过 Gate" → FSM 直接拒绝非法操作
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
| 组件 | 说明 |
|
|
59
|
+
|------|------|
|
|
60
|
+
| **MCP Server** | 4 个编排工具:pipeline_init / status / gate_enforce / advance_gate |
|
|
61
|
+
| **硬约束 FSM** | 跳过 Gate 被拒 / 乱序推进被拒 / 条件未满足被拒 |
|
|
62
|
+
| **SQLite 持久化** | pipeline + sessions + checkpoints + agent_models 四表 |
|
|
63
|
+
| **Session 管理** | Leader 选举 + 心跳超时 + Observer 只读 |
|
|
64
|
+
| **三平台钩子** | PostToolUse{Agent} → `jarvis hook gate-check`,每次 spawn 后自动验证 |
|
|
65
|
+
| **Web Dashboard** | Gate 进度条 + Agent 像素模型配置卡片 + SSE 实时推送 |
|
|
66
|
+
| **REST API** | `/api/pipeline` `/api/gate/enforce` `/api/gate/advance` `/api/agents` |
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
jarvis engine start --dashboard # 启动引擎 + Web 面板 → localhost:3456
|
|
70
|
+
jarvis engine stop # 停止
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## 架构
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
src/
|
|
77
|
+
├── engine/ 🧠 MCP Server + SQLite + FSM 状态机
|
|
78
|
+
├── web/ 🌐 REST API + Dashboard + SSE
|
|
79
|
+
├── cli.js ⌨️ init/add/remove/upgrade/doctor/engine/hook
|
|
80
|
+
├── install.js 📥 平台安装 + MCP 生成 + 钩子注入
|
|
81
|
+
├── templates/ 📋 三平台配置模板 + MCP 模板 + 钩子模板
|
|
82
|
+
│ └── platforms/{claude,opencode,codex}/ ← 单一事实源
|
|
83
|
+
└── hook.js 🪝 gate-check / gate-advance / status
|
|
84
|
+
```
|
|
85
|
+
|
|
51
86
|
## 使用方法
|
|
52
87
|
|
|
53
88
|
### npm CLI(推荐)
|
|
@@ -201,19 +236,22 @@ npm i -g agent-browser && agent-browser install
|
|
|
201
236
|
## 目录结构
|
|
202
237
|
|
|
203
238
|
```
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
.
|
|
215
|
-
|
|
216
|
-
|
|
239
|
+
src/
|
|
240
|
+
├── templates/platforms/ # 📦 配置模板(单一事实源)
|
|
241
|
+
│ ├── claude/ # 47 agents + 15 commands + 27 skills
|
|
242
|
+
│ ├── opencode/ # 55 agents + 27 skills
|
|
243
|
+
│ └── codex/ # 45 agents + 42 skills + config.toml
|
|
244
|
+
├── engine/ # 🧠 引擎层
|
|
245
|
+
│ ├── server.js # MCP HTTP Server
|
|
246
|
+
│ ├── db.js # SQLite 持久化(WAL)
|
|
247
|
+
│ └── gates.js # 状态机 + Agent 定义
|
|
248
|
+
├── web/ # 🌐 Web 层
|
|
249
|
+
│ ├── routes.js # REST API + SSE
|
|
250
|
+
│ └── views/ # Dashboard HTML
|
|
251
|
+
├── templates/ # 📋 MCP + 钩子模板
|
|
252
|
+
├── cli.js # ⌨️ CLI 入口
|
|
253
|
+
├── install.js # 📥 安装 + 钩子注入
|
|
254
|
+
└── hook.js # 🪝 钩子集成
|
|
217
255
|
```
|
|
218
256
|
|
|
219
257
|
## 设计原则
|
package/package.json
CHANGED
|
@@ -13,6 +13,8 @@ description: 启动贾维斯编排模式——需求→文档→任务→计划
|
|
|
13
13
|
Gate C1 时加载:`Skill("code-quality-gate")`
|
|
14
14
|
Gate E 时加载:`Skill("shipping-and-launch")` `Skill("git-workflow-and-versioning")` `Skill("finishing-a-development-branch")`
|
|
15
15
|
|
|
16
|
+
**引擎检查**:如果项目中有 `.jarvis/engine.db`,说明引擎已就绪。每个 Gate 通过后调用 `jarvis hook gate-advance` 推进硬状态机。
|
|
17
|
+
|
|
16
18
|
2. 判断当前需求是否适合流水线:
|
|
17
19
|
- ❌ **不适合**:用户提问信息量("有多少模块?")、明确要求单 agent 执行、纯文档格式化翻译
|
|
18
20
|
- ✅ **适合**:开发、改造、配置、调试、Bug 修复、新功能
|
|
@@ -110,7 +112,7 @@ Batch 3: [TASK-005, TASK-006] ← 依赖 Batch 2 完成
|
|
|
110
112
|
|
|
111
113
|
## 🟠 Gate C1:代码质量门(不可绕过)
|
|
112
114
|
|
|
113
|
-
实现完成后的第一道质量门。**不可绕过。** 加载 `Skill("code-quality-gate")` 执行四项检查(Lint → Type-check → Build → Deps Audit),按技能中的项目类型工具链表选择命令。全部通过后输出质量检查摘要,作为 Gate C2
|
|
115
|
+
实现完成后的第一道质量门。**不可绕过。** 加载 `Skill("code-quality-gate")` 执行四项检查(Lint → Type-check → Build → Deps Audit),按技能中的项目类型工具链表选择命令。全部通过后输出质量检查摘要,作为 Gate C2 前置输入。通过后 `jarvis hook gate-advance`。
|
|
114
116
|
|
|
115
117
|
必须**全部**满足才能进入 Gate C2:
|
|
116
118
|
- [ ] **Lint 零错误**(warning 可接受但需记录)
|
|
@@ -174,7 +176,7 @@ Gate C1(+ Gate C1.5 如适用)通过后方可进入此门。
|
|
|
174
176
|
│ └── spawn e2e-test-worker
|
|
175
177
|
│
|
|
176
178
|
├── 步骤 6:测试结果汇总 → docs/testing/...
|
|
177
|
-
|
|
179
|
+
├── Gate C2 通过 → `jarvis hook gate-advance` → 进入 Gate D 评审
|
|
178
180
|
```
|
|
179
181
|
|
|
180
182
|
### test_after 策略规范
|
|
@@ -77,6 +77,22 @@ description: 贾维斯编排模式——需求→文档→任务→计划→实
|
|
|
77
77
|
| 基础设施 | `infra_worker` `api_docs_worker` |
|
|
78
78
|
| 探索 | `repo_explorer` `docs_researcher` |
|
|
79
79
|
|
|
80
|
+
## Execution Packet 模板
|
|
81
|
+
|
|
82
|
+
spawn 子 Agent 时必须传递以下字段:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
### task_id: TASK-XXX
|
|
86
|
+
### task_name: <名称>
|
|
87
|
+
### requirement_ids: REQ-XXX
|
|
88
|
+
### objective: <一句话目标>
|
|
89
|
+
### allowed_paths / forbidden_paths: <文件路径>
|
|
90
|
+
### required_skills: <技能列表。子Agent启动后逐一加载。planner按技能分配规则指定>
|
|
91
|
+
### acceptance_criteria: <可验证验收条件>
|
|
92
|
+
### test_strategy: tdd / test_after / manual_only
|
|
93
|
+
### escalation_rule: 共享区域变更必须先回编排者
|
|
94
|
+
```
|
|
95
|
+
|
|
80
96
|
## Plan Patch 机制
|
|
81
97
|
|
|
82
98
|
实现 Agent 变更共享区域前必须提交 plan patch(提出者/关联任务/冲突描述/建议变更/影响评估/替代方案),编排者评估决策后更新计划。
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
---
|
|
2
|
+
name: planner
|
|
2
3
|
description: "在需求文档已通过 Gate A、任务文档已通过 Gate B 后使用;选择当前轮次任务包,生成执行计划,并明确实现代理分工、共享改动归属与 Execution Packet。"
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
permission:
|
|
7
|
-
edit: allow
|
|
8
|
-
bash: allow
|
|
9
|
-
task: deny
|
|
4
|
+
tools: Read, Write, Edit, Bash, Glob, Grep, Skill
|
|
5
|
+
effort: max
|
|
6
|
+
model: deepseek-v4-pro
|
|
10
7
|
---
|
|
8
|
+
|
|
11
9
|
你是执行规划代理。
|
|
12
10
|
|
|
13
11
|
## 工作流编排位置
|
|
@@ -63,20 +61,42 @@ permission:
|
|
|
63
61
|
- TDD 任务的 Red→Green→Refactor 必须串行
|
|
64
62
|
- 不同 TDD 任务的 Red 步骤可并行
|
|
65
63
|
|
|
64
|
+
### 技能分配规则
|
|
65
|
+
|
|
66
|
+
根据任务类型和 test_strategy,在 Execution Packet 中指定 `required_skills`。子 Agent 收到后会在启动时加载这些技能。
|
|
67
|
+
|
|
68
|
+
| 任务场景 | required_skills(基础 + 场景) |
|
|
69
|
+
|---------|------|
|
|
70
|
+
| 所有任务(基础) | `behavioral-guidelines` `code-standards` |
|
|
71
|
+
| 代码实现 | + `source-driven-development` `incremental-implementation` `verification-before-completion` |
|
|
72
|
+
| TDD 任务 | + `test-driven-development` |
|
|
73
|
+
| 前端 UI/组件 | + `source-driven-development` `incremental-implementation` `verification-before-completion` |
|
|
74
|
+
| 后端业务逻辑 | + `source-driven-development` `incremental-implementation` `verification-before-completion` |
|
|
75
|
+
| 代码审查 | + `code-review-and-quality` |
|
|
76
|
+
| 架构设计 | + `source-driven-development` `documentation-and-adrs` |
|
|
77
|
+
| 安全审计 | + `security-and-hardening` |
|
|
78
|
+
| 数据层/DB | + `source-driven-development` |
|
|
79
|
+
| 性能测试 | + `debugging-and-error-recovery` |
|
|
80
|
+
| E2E 测试 | + `debugging-and-error-recovery` `verification-before-completion` |
|
|
81
|
+
| 浏览器测试 | + `agent-browser` `browser-testing` |
|
|
82
|
+
| Bug 修复 | + `source-driven-development` `debugging-and-error-recovery` |
|
|
83
|
+
| 重构 | + `code-simplification` `source-driven-development` `verification-before-completion` |
|
|
84
|
+
| API 文档 | + `source-driven-development` `chinese-documentation` |
|
|
85
|
+
| 发布/部署 | + `shipping-and-launch` `git-workflow-and-versioning` `finishing-a-development-branch` |
|
|
86
|
+
|
|
87
|
+
> 若任务有项目专属 skill(如 `.claude/skills/my-custom-skill/`),编排者可在 Execution Packet 的 `required_skills` 中追加。
|
|
88
|
+
|
|
66
89
|
### 变更规模控制
|
|
67
90
|
|
|
68
91
|
单轮次所有任务的预期变更总行数不应超过 ~1000 行。超过时考虑拆分为两个轮次。
|
|
69
92
|
|
|
70
|
-
##
|
|
93
|
+
## 技能加载(必须执行)
|
|
71
94
|
|
|
72
|
-
|
|
95
|
+
**开始规划前,必须调用 `Skill` 工具加载技能。**
|
|
73
96
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
4. **目标驱动执行** — 将任务转化为可验证目标。先写测试再使其通过。多步骤时陈述计划与验证点。
|
|
78
|
-
|
|
79
|
-
> 完整准则见技能:`behavioral-guidelines`。简单任务可自行判断,有疑问时优先谨慎。
|
|
97
|
+
```
|
|
98
|
+
Skill(skill="behavioral-guidelines")
|
|
99
|
+
```
|
|
80
100
|
|
|
81
101
|
## 反合理化表
|
|
82
102
|
|
|
@@ -151,7 +171,7 @@ permission:
|
|
|
151
171
|
|
|
152
172
|
## parallel_batches 输出格式(必须使用)
|
|
153
173
|
|
|
154
|
-
|
|
174
|
+
计划文档中必须包含以下格式的并行批次定义,确保主 Build Agent 可以直接解析并 spawn Agent:
|
|
155
175
|
|
|
156
176
|
```
|
|
157
177
|
## parallel_batches
|
|
@@ -217,6 +237,7 @@ permission:
|
|
|
217
237
|
### allowed_paths: <允许修改的目录/文件>
|
|
218
238
|
### forbidden_paths: <禁止修改的共享区域>
|
|
219
239
|
### dependencies: <依赖的 API / 契约 / schema>
|
|
240
|
+
### required_skills: <技能列表,按上方「技能分配规则」填写。子 Agent 启动后必须逐一 Skill() 加载>
|
|
220
241
|
### parallel_group: <可与此任务并行的任务 ID 列表>
|
|
221
242
|
### wait_for: <必须等待完成的任务 ID 列表>
|
|
222
243
|
### acceptance_criteria: <可验证的验收条件>
|