@jun133/athlete 0.0.4 → 0.0.6
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 +149 -91
- package/dist/cli.js +26562 -19473
- package/dist/cli.js.map +1 -1
- package/package.json +6 -1
- package/scripts/postinstall-playwright.mjs +1 -1
- package/spec/README.md +49 -41
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260/README.md +29 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//344/270/273/345/276/252/347/216/257/344/270/216/350/260/203/345/272/246.md +60 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//344/273/223/345/272/223/347/272/246/346/235/237//345/274/200/345/217/221/350/247/204/345/210/231.md +14 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//344/273/223/345/272/223/347/272/246/346/235/237//346/234/254/345/234/260/345/221/275/344/273/244/344/270/216/346/265/201/347/250/213.md +20 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//344/273/223/345/272/223/347/272/246/346/235/237//346/265/213/350/257/225/347/255/226/347/225/245.md +48 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//344/273/243/347/240/201/345/234/260/345/233/276//347/233/256/345/275/225/345/210/260/344/273/243/347/240/201/346/230/240/345/260/204.md +51 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227/Telegram/347/247/201/350/201/212.md +31 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//344/272/244/344/272/222/347/273/210/347/253/257.md +26 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//345/221/275/344/273/244/350/241/214/344/272/247/345/223/201/351/235/242.md +27 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//345/244/232/346/231/272/350/203/275/344/275/223/350/260/203/345/272/246.md +79 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//345/256/277/344/270/273/350/277/220/350/241/214/350/276/271/347/225/214.md +74 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//345/267/245/344/275/234/345/214/272/344/270/216/345/271/266/350/241/214/351/232/224/347/246/273.md +55 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//345/276/256/344/277/241/347/247/201/350/201/212.md +33 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//346/211/251/345/261/225/346/234/272/345/210/266.md +179 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//346/216/247/345/210/266/351/235/242/350/264/246/346/234/254.md +32 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//345/205/263/351/224/256/346/250/241/345/235/227//351/205/215/347/275/256/347/263/273/347/273/237.md +31 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//346/200/273/344/275/223/346/236/266/346/236/204.md +115 -0
- package/spec//346/212/200/346/234/257/345/256/236/347/216/260//347/212/266/346/200/201/344/270/216/347/234/237/347/233/270/346/272/220.md +129 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205/README.md +27 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//344/272/247/345/223/201/345/256/232/344/275/215.md +78 -0
- package/spec/{principles/P06- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/06-}/344/270/212/344/270/213/346/226/207/350/246/201/350/203/275/345/216/213/347/274/251.md +2 -2
- package/spec/{principles/P08- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/08-}/346/205/242/346/223/215/344/275/234/346/224/276/345/220/216/345/217/260.md +1 -1
- package/spec/{principles/P13-session → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/13-session}/346/230/257/344/273/273/345/212/241/347/216/260/345/234/272.md +3 -3
- package/spec/{principles/P15-provider → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/15-provider}/345/277/205/351/241/273/345/217/257/346/233/277/346/215/242.md +3 -1
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/17-/346/211/251/345/261/225/351/235/240/344/272/213/344/273/266/347/224/237/351/225/277.md +71 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/18-/344/270/273/345/276/252/347/216/257/345/222/214/346/226/207/344/273/266/351/203/275/344/270/215/350/203/275/351/225/277/350/203/226.md +37 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/20-/345/244/226/351/203/250/344/272/213/345/256/236/345/277/205/351/241/273/347/273/221/345/256/232/350/257/201/346/215/256.md +48 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/21-/346/262/241/351/252/214/350/277/207/345/260/261/344/270/215/350/203/275/346/224/266/345/217/243.md +46 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/22-/351/230/266/346/256/265/346/216/250/350/277/233/345/277/205/351/241/273/346/234/211/346/234/272/345/231/250/347/212/266/346/200/201.md +40 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/23-/346/226/207/346/234/254/351/223/276/350/267/257/345/277/205/351/241/273/347/250/263/345/256/232/345/217/257/350/257/273.md +38 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/24-/351/224/231/350/257/257/345/205/274/345/256/271/344/270/215/350/203/275/351/253/230/344/272/216/346/255/243/347/241/256/346/200/247.md +38 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/25-/346/226/260/351/241/271/347/233/256/344/270/215/344/270/272/346/227/247/346/256/213/344/275/231/344/277/235/346/264/273.md +66 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/README.md +37 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//347/263/273/347/273/237/345/205/250/346/231/257.md +57 -0
- package/spec//347/224/250/346/210/267/345/256/241/351/230/205//351/241/271/347/233/256/350/214/203/345/233/264.md +59 -0
- package/spec/adr/ADR-0001-/345/215/225/346/250/241/345/274/217/345/205/250/346/235/203/351/231/220.md +0 -16
- package/spec/adr/ADR-0002-/345/215/225agent/350/265/267/346/255/245/345/271/266/351/242/204/347/225/231/345/244/232agent/350/276/271/347/225/214.md +0 -19
- package/spec/adr/ADR-0003-openai-compatible/344/274/230/345/205/210.md +0 -16
- package/spec/architecture//346/200/273/344/275/223/346/236/266/346/236/204.md +0 -111
- package/spec/architecture//347/212/266/346/200/201/344/270/216/347/234/237/347/233/270/346/272/220.md +0 -117
- package/spec/architecture//350/277/220/350/241/214/346/227/266/345/276/252/347/216/257.md +0 -82
- package/spec/implementation/README.md +0 -17
- package/spec/implementation//346/250/241/345/235/227/347/272/247/345/274/200/345/217/221/344/273/273/345/212/241/345/215/225.md +0 -55
- package/spec/implementation//347/233/256/345/275/225/347/273/223/346/236/204/345/210/260/344/273/243/347/240/201/346/226/207/344/273/266/346/230/240/345/260/204/350/241/250.md +0 -101
- package/spec/interfaces/InteractionShell.md +0 -85
- package/spec/interfaces/ProviderAdapter.md +0 -23
- package/spec/interfaces/README.md +0 -17
- package/spec/interfaces/RuntimeLoop.md +0 -28
- package/spec/interfaces/SessionStore.md +0 -22
- package/spec/interfaces/ToolRegistry.md +0 -21
- package/spec/modules/config-system.md +0 -51
- package/spec/modules/interactive-terminal.md +0 -112
- package/spec/modules/lightweight-context-runtime.md +0 -63
- package/spec/modules/provider-adapter.md +0 -20
- package/spec/modules/runtime-metrics.md +0 -132
- package/spec/modules/runtime-rules.md +0 -33
- package/spec/modules/session-resume-compact.md +0 -49
- package/spec/modules/task-state.md +0 -34
- package/spec/modules/telegram-private-chat.md +0 -291
- package/spec/modules/tool-registry.md +0 -79
- package/spec/modules/weixin-private-chat.md +0 -291
- package/spec/modules/workspace-isolation.md +0 -24
- package/spec/modules//346/211/251/345/261/225/346/234/272/345/210/266.md +0 -105
- package/spec/overview/v0/350/214/203/345/233/264.md +0 -54
- package/spec/overview//344/272/247/345/223/201/345/256/232/344/271/211.md +0 -59
- package/spec/principles/P17-/346/211/251/345/261/225/351/235/240/344/272/213/344/273/266/347/224/237/351/225/277.md +0 -32
- package/spec/principles/P18-/344/270/273/345/276/252/347/216/257/345/222/214/346/226/207/344/273/266/351/203/275/344/270/215/350/203/275/351/225/277/350/203/226.md +0 -36
- package/spec/principles/README.md +0 -39
- package/spec/repo//345/274/200/345/217/221/350/247/204/345/210/231.md +0 -39
- package/spec/repo//346/234/254/345/234/260/345/221/275/344/273/244/344/270/216/346/265/201/347/250/213.md +0 -32
- package/spec/testing/fail-first-/347/254/254/344/270/200/346/211/271/346/265/213/350/257/225/345/210/227/350/241/250.md +0 -11
- package/spec/testing/fixtures-/350/247/204/350/214/203.md +0 -20
- package/spec/testing//346/265/213/350/257/225/347/255/226/347/225/245.md +0 -97
- /package/spec/{principles/P01- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/01-}/344/270/200/344/270/252/345/276/252/347/216/257/344/270/200/344/270/252/346/231/272/350/203/275/344/275/223.md" +0 -0
- /package/spec/{principles/P02- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/02-}/345/212/240/344/270/200/344/270/252/345/267/245/345/205/267/345/217/252/345/212/240/344/270/200/344/270/252/345/244/204/347/220/206/345/231/250.md" +0 -0
- /package/spec/{principles/P03- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/03-}/345/205/210/350/256/241/345/210/222/345/206/215/345/212/250/346/211/213.md" +0 -0
- /package/spec/{principles/P04- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/04-}/345/244/247/344/273/273/345/212/241/346/213/206/347/273/231/345/255/220/346/231/272/350/203/275/344/275/223.md" +0 -0
- /package/spec/{principles/P05- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/05-}/347/237/245/350/257/206/346/214/211/351/234/200/345/212/240/350/275/275.md" +0 -0
- /package/spec/{principles/P07- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/07-}/344/273/273/345/212/241/345/233/276/350/246/201/350/220/275/347/233/230.md" +0 -0
- /package/spec/{principles/P09- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/09-}/344/273/273/345/212/241/345/244/252/345/244/247/345/260/261/345/210/206/347/273/231/351/230/237/345/217/213.md" +0 -0
- /package/spec/{principles/P10- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/10-}/351/230/237/345/217/213/344/271/213/351/227/264/350/246/201/346/234/211/347/273/237/344/270/200/345/215/217/350/256/256.md" +0 -0
- /package/spec/{principles/P11- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/11-}/351/230/237/345/217/213/350/207/252/345/267/261/350/256/244/351/242/206/344/273/273/345/212/241.md" +0 -0
- /package/spec/{principles/P12- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/12-}/345/267/245/344/275/234/345/214/272/345/222/214/344/273/273/345/212/241/350/246/201/351/232/224/347/246/273.md" +0 -0
- /package/spec/{principles/P14- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/14-}/346/211/247/350/241/214/347/272/246/346/235/237/344/270/215/346/230/257/345/256/211/345/205/250/347/255/226/347/225/245.md" +0 -0
- /package/spec/{principles/P16- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/16-}/351/205/215/347/275/256/345/217/252/350/203/275/346/234/211/344/270/200/344/270/252/345/205/245/345/217/243.md" +0 -0
- /package/spec/{principles/P19- → /347/224/250/346/210/267/345/256/241/351/230/205//345/256/252/346/263/225/345/216/237/345/210/231/19-}/345/205/210/345/206/231/345/244/261/350/264/245/346/265/213/350/257/225/345/206/215/345/206/231/345/256/236/347/216/260.md" +0 -0
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
# 扩展机制
|
|
2
|
-
|
|
3
|
-
## 当前扩展口
|
|
4
|
-
|
|
5
|
-
Athlete 当前有 3 个标准扩展口:
|
|
6
|
-
|
|
7
|
-
1. tools:负责动作
|
|
8
|
-
2. skills:负责按需 workflow 与知识
|
|
9
|
-
3. MCP:负责接外部能力源
|
|
10
|
-
|
|
11
|
-
## skill 当前状态
|
|
12
|
-
|
|
13
|
-
skills 已经是标准化 V1,而不是散装 prompt 片段。
|
|
14
|
-
|
|
15
|
-
当前主要实现:
|
|
16
|
-
|
|
17
|
-
- `src/skills/types.ts`
|
|
18
|
-
- `src/skills/schema.ts`
|
|
19
|
-
- `src/skills/discovery.ts`
|
|
20
|
-
- `src/skills/matching.ts`
|
|
21
|
-
- `src/skills/loading.ts`
|
|
22
|
-
- `src/skills/state.ts`
|
|
23
|
-
- `src/skills/workflowGuards.ts`
|
|
24
|
-
- `src/skills/prompt.ts`
|
|
25
|
-
|
|
26
|
-
## 当前 workflow skill
|
|
27
|
-
|
|
28
|
-
当前仓库已落地的关键 workflow skill:
|
|
29
|
-
|
|
30
|
-
- `test-guardrails`
|
|
31
|
-
- `spec-alignment`
|
|
32
|
-
- `mineru-pdf-reading`
|
|
33
|
-
- `mineru-image-reading`
|
|
34
|
-
- `mineru-doc-reading`
|
|
35
|
-
- `mineru-ppt-reading`
|
|
36
|
-
- `web-research`
|
|
37
|
-
- `browser-automation`
|
|
38
|
-
|
|
39
|
-
MinerU 文档 workflow 现在按类别拆成独立工具:
|
|
40
|
-
|
|
41
|
-
- `mineru_pdf_read`
|
|
42
|
-
- `mineru_image_read`
|
|
43
|
-
- `mineru_doc_read`
|
|
44
|
-
- `mineru_ppt_read`
|
|
45
|
-
|
|
46
|
-
## web-research / browser-automation 的边界
|
|
47
|
-
|
|
48
|
-
这两个 skill 现在已经是真实 workflow,而不是占位文档。
|
|
49
|
-
|
|
50
|
-
职责边界:
|
|
51
|
-
|
|
52
|
-
- `web-research`
|
|
53
|
-
- 何时先搜
|
|
54
|
-
- 何时打开网页
|
|
55
|
-
- 何时提取信息
|
|
56
|
-
- 何时总结
|
|
57
|
-
- 何时落文档
|
|
58
|
-
- `browser-automation`
|
|
59
|
-
- 何时导航
|
|
60
|
-
- 何时 snapshot
|
|
61
|
-
- 何时 click / type
|
|
62
|
-
- 何时 screenshot
|
|
63
|
-
- 何时做网页交互
|
|
64
|
-
|
|
65
|
-
不负责:
|
|
66
|
-
|
|
67
|
-
- 实现浏览器 transport
|
|
68
|
-
- 取代 MCP / tool
|
|
69
|
-
|
|
70
|
-
## 联网能力分层
|
|
71
|
-
|
|
72
|
-
当前分层是:
|
|
73
|
-
|
|
74
|
-
1. MCP / tools
|
|
75
|
-
- 提供真实浏览器能力
|
|
76
|
-
- 当前优先是官方 `@playwright/mcp`
|
|
77
|
-
2. workflow skill
|
|
78
|
-
- 提供使用策略
|
|
79
|
-
- 当前是 `web-research` 与 `browser-automation`
|
|
80
|
-
|
|
81
|
-
设计原则:
|
|
82
|
-
|
|
83
|
-
- 联网能力先做成 `tool` 或 `MCP`
|
|
84
|
-
- `skill` 只做 workflow
|
|
85
|
-
- 不把底层联网继续堆进 `systemPrompt`
|
|
86
|
-
|
|
87
|
-
## 当前接线点
|
|
88
|
-
|
|
89
|
-
当前 skill / MCP / runtime 的接线点:
|
|
90
|
-
|
|
91
|
-
- `src/context/projectContext.ts`
|
|
92
|
-
- `src/tools/skills/loadSkillTool.ts`
|
|
93
|
-
- `src/agent/systemPrompt.ts`
|
|
94
|
-
- `src/agent/runTurn.ts`
|
|
95
|
-
- `src/tools/runtimeRegistry.ts`
|
|
96
|
-
- `src/mcp/registryIntegration.ts`
|
|
97
|
-
|
|
98
|
-
## 当前约束
|
|
99
|
-
|
|
100
|
-
当前扩展仍必须满足:
|
|
101
|
-
|
|
102
|
-
- 不破坏 continuation / compact / recovery
|
|
103
|
-
- 不让主循环继续长胖
|
|
104
|
-
- 不新造平行技能体系
|
|
105
|
-
- 不让 MCP 绕开统一 registry
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
# v0 范围
|
|
2
|
-
|
|
3
|
-
## 当前已在范围内
|
|
4
|
-
|
|
5
|
-
### 运行时
|
|
6
|
-
|
|
7
|
-
- 单 turn 主循环
|
|
8
|
-
- 自动 continuation
|
|
9
|
-
- 上下文压缩
|
|
10
|
-
- verification 状态机
|
|
11
|
-
|
|
12
|
-
### 工具与执行
|
|
13
|
-
|
|
14
|
-
- 文件读写与补丁修改
|
|
15
|
-
- shell 执行
|
|
16
|
-
- docx / spreadsheet 基础能力
|
|
17
|
-
- background job
|
|
18
|
-
|
|
19
|
-
### 控制面
|
|
20
|
-
|
|
21
|
-
- 任务板持久化
|
|
22
|
-
- teammate 名册与 inbox
|
|
23
|
-
- 协议请求与审批状态
|
|
24
|
-
- worktree 绑定与隔离
|
|
25
|
-
|
|
26
|
-
### 扩展
|
|
27
|
-
|
|
28
|
-
- 项目指令发现
|
|
29
|
-
- skill catalog 发现与按需加载
|
|
30
|
-
- MCP 工具接入
|
|
31
|
-
|
|
32
|
-
## 当前不在范围内
|
|
33
|
-
|
|
34
|
-
- 图形化编排平台
|
|
35
|
-
- 跨项目长期人格记忆
|
|
36
|
-
- 全自动自治 swarm
|
|
37
|
-
- 复杂经济系统、积分系统、市场化调度
|
|
38
|
-
- 大而全行业平台能力
|
|
39
|
-
|
|
40
|
-
## 下一阶段新增范围
|
|
41
|
-
|
|
42
|
-
1. 主 Agent 的总指挥层
|
|
43
|
-
2. 更清晰的任务拆分与派工规则
|
|
44
|
-
3. skills 的标准声明与加载协议
|
|
45
|
-
4. reviewer / verifier / planner 这类专门角色的演进边界
|
|
46
|
-
|
|
47
|
-
## 范围控制规则
|
|
48
|
-
|
|
49
|
-
如果一个新需求同时满足下面两条,应该延后:
|
|
50
|
-
|
|
51
|
-
- 会削弱当前“耐跑底盘”
|
|
52
|
-
- 不能明显增强“总指挥层”或 “skills 扩展口”
|
|
53
|
-
|
|
54
|
-
当前阶段优先做“更会组织”,不是“看起来更全能”。
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# 产品定义
|
|
2
|
-
|
|
3
|
-
## Athlete 是什么
|
|
4
|
-
|
|
5
|
-
Athlete 是一个终端优先的 AI harness。
|
|
6
|
-
|
|
7
|
-
它不是“在命令行里聊天”,而是一套让模型持续做任务的运行系统:
|
|
8
|
-
|
|
9
|
-
- 能调用工具
|
|
10
|
-
- 能持久化任务状态
|
|
11
|
-
- 能续跑长任务
|
|
12
|
-
- 能把慢操作放后台
|
|
13
|
-
- 能按需调用子智能体或队友
|
|
14
|
-
|
|
15
|
-
## 当前核心定位
|
|
16
|
-
|
|
17
|
-
当前 Athlete 的核心定位是:
|
|
18
|
-
|
|
19
|
-
**一个耐跑、可续跑、面向复杂任务的终端智能体框架。**
|
|
20
|
-
|
|
21
|
-
它现在最强的价值不是“最会聊天”,而是:
|
|
22
|
-
|
|
23
|
-
- 不容易中途断掉
|
|
24
|
-
- 出错后会继续排查
|
|
25
|
-
- 长任务能自动续跑
|
|
26
|
-
- 多步任务有状态落盘
|
|
27
|
-
|
|
28
|
-
## 下一阶段定位
|
|
29
|
-
|
|
30
|
-
下一阶段 Athlete 的定位是:
|
|
31
|
-
|
|
32
|
-
**一个以耐跑主 Agent 为核心、能够统筹任务与技能扩展的总指挥型智能体平台。**
|
|
33
|
-
|
|
34
|
-
关键词:
|
|
35
|
-
|
|
36
|
-
- 主 Agent 很强
|
|
37
|
-
- 复杂任务时会拆分与调度
|
|
38
|
-
- skills 是标准扩展口
|
|
39
|
-
- 多 Agent 是按需能力,不是默认军团
|
|
40
|
-
|
|
41
|
-
## 目标用户
|
|
42
|
-
|
|
43
|
-
### 当前主要用户
|
|
44
|
-
|
|
45
|
-
- 会在终端里工作的开发者
|
|
46
|
-
- 想研究 agent harness 架构的维护者
|
|
47
|
-
|
|
48
|
-
### 未来扩展用户
|
|
49
|
-
|
|
50
|
-
- 需要多步自动化的人
|
|
51
|
-
- 需要文档、表格、资料整理等复杂任务的人
|
|
52
|
-
- 想给 agent 增加行业技能的人
|
|
53
|
-
|
|
54
|
-
## 非目标
|
|
55
|
-
|
|
56
|
-
- 不做拖拽式工作流平台
|
|
57
|
-
- 不做纯聊天机器人
|
|
58
|
-
- 不追求“默认一堆 agent 同时乱跑”
|
|
59
|
-
- 不把长期人格记忆作为当前阶段的核心卖点
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# P17 扩展靠事件生长
|
|
2
|
-
|
|
3
|
-
## 原则
|
|
4
|
-
|
|
5
|
-
扩展不能只靠往 system prompt 里继续堆规则,应该沿着清晰的扩展点生长。
|
|
6
|
-
|
|
7
|
-
## 为什么
|
|
8
|
-
|
|
9
|
-
Athlete 未来一定会长:
|
|
10
|
-
|
|
11
|
-
- skills
|
|
12
|
-
- 更多工具
|
|
13
|
-
- 更多角色
|
|
14
|
-
- 更多运行时通知
|
|
15
|
-
|
|
16
|
-
如果没有扩展点,主循环和工具层都会越来越胖。
|
|
17
|
-
|
|
18
|
-
## 在 Athlete 里的含义
|
|
19
|
-
|
|
20
|
-
当前扩展入口主要有三种:
|
|
21
|
-
|
|
22
|
-
- tool registry
|
|
23
|
-
- skills
|
|
24
|
-
- MCP
|
|
25
|
-
|
|
26
|
-
下一阶段要补的是更明确的 runtime / lifecycle 事件点。
|
|
27
|
-
|
|
28
|
-
## 当前对应
|
|
29
|
-
|
|
30
|
-
- `src/tools/runtimeRegistry.ts`
|
|
31
|
-
- `src/skills/catalog.ts`
|
|
32
|
-
- `src/mcp/`
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# P18 主循环和文件都不能长胖
|
|
2
|
-
|
|
3
|
-
## 原则
|
|
4
|
-
|
|
5
|
-
主循环不能无限长,文件也不能无限长。
|
|
6
|
-
|
|
7
|
-
## 为什么
|
|
8
|
-
|
|
9
|
-
Athlete 以后会继续长总指挥层、skills、角色和协议。
|
|
10
|
-
|
|
11
|
-
如果不控制体积:
|
|
12
|
-
|
|
13
|
-
- AI 更容易改坏系统
|
|
14
|
-
- 人更难定位职责
|
|
15
|
-
- 小改动会牵动全身
|
|
16
|
-
|
|
17
|
-
## 铁律
|
|
18
|
-
|
|
19
|
-
1. 单文件默认不超过 300 行。
|
|
20
|
-
2. 文件超过 300 行时,必须先检查是不是职责耦合。
|
|
21
|
-
3. 只要出现“一个文件里有两件以上主要事情”,优先拆目录或拆文件。
|
|
22
|
-
4. 主循环只保留全局调度规则,不塞模块细节。
|
|
23
|
-
|
|
24
|
-
## Athlete 当前阶段的执行方式
|
|
25
|
-
|
|
26
|
-
- 优先新增目录,不优先堆到已有大文件
|
|
27
|
-
- 一类状态一个 store
|
|
28
|
-
- 一类工具一个子目录
|
|
29
|
-
- 一类角色一个清晰边界
|
|
30
|
-
|
|
31
|
-
## 当前对应
|
|
32
|
-
|
|
33
|
-
- `src/agent/runTurn.ts`
|
|
34
|
-
- `src/tools/`
|
|
35
|
-
- `src/team/`
|
|
36
|
-
- `src/tasks/`
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# 宪法原则
|
|
2
|
-
|
|
3
|
-
这一组文档是 Athlete 当前唯一有效的架构原则集合。
|
|
4
|
-
|
|
5
|
-
它们直接服务于实现与维护。
|
|
6
|
-
|
|
7
|
-
## 当前原则体系
|
|
8
|
-
|
|
9
|
-
### 核心 12 条
|
|
10
|
-
|
|
11
|
-
- `P01-一个循环一个智能体.md`
|
|
12
|
-
- `P02-加一个工具只加一个处理器.md`
|
|
13
|
-
- `P03-先计划再动手.md`
|
|
14
|
-
- `P04-大任务拆给子智能体.md`
|
|
15
|
-
- `P05-知识按需加载.md`
|
|
16
|
-
- `P06-上下文要能压缩.md`
|
|
17
|
-
- `P07-任务图要落盘.md`
|
|
18
|
-
- `P08-慢操作放后台.md`
|
|
19
|
-
- `P09-任务太大就分给队友.md`
|
|
20
|
-
- `P10-队友之间要有统一协议.md`
|
|
21
|
-
- `P11-队友自己认领任务.md`
|
|
22
|
-
- `P12-工作区和任务要隔离.md`
|
|
23
|
-
|
|
24
|
-
### 当前工程铁律
|
|
25
|
-
|
|
26
|
-
- `P13-session是任务现场.md`
|
|
27
|
-
- `P14-执行约束不是安全策略.md`
|
|
28
|
-
- `P15-provider必须可替换.md`
|
|
29
|
-
- `P16-配置只能有一个入口.md`
|
|
30
|
-
- `P17-扩展靠事件生长.md`
|
|
31
|
-
- `P18-主循环和文件都不能长胖.md`
|
|
32
|
-
- `P19-先写失败测试再写实现.md`
|
|
33
|
-
|
|
34
|
-
## 使用规则
|
|
35
|
-
|
|
36
|
-
1. 新原则必须长期有效,且跨多个模块成立。
|
|
37
|
-
2. 临时实现细节不要升格成原则。
|
|
38
|
-
3. 若与当前实现冲突,应优先修正文档或实现,不能长期并存。
|
|
39
|
-
4. 若只是模块约束,优先写到 `modules/`、`implementation/` 或 `adr/`。
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
# 开发规则
|
|
2
|
-
|
|
3
|
-
## 总则
|
|
4
|
-
|
|
5
|
-
Athlete 是 harness 工程,不是一次性脚本。
|
|
6
|
-
|
|
7
|
-
所有改动优先保护:
|
|
8
|
-
|
|
9
|
-
1. 耐跑底盘
|
|
10
|
-
2. 控制面真相
|
|
11
|
-
3. 扩展边界
|
|
12
|
-
|
|
13
|
-
## 文件规则
|
|
14
|
-
|
|
15
|
-
1. 单文件默认不超过 300 行。
|
|
16
|
-
2. 超过 300 行时必须检查是不是耦合过多。
|
|
17
|
-
3. 能拆目录就拆目录,能拆文件就拆文件。
|
|
18
|
-
4. 一个文件只做一件主要事情。
|
|
19
|
-
5. 一个模块尽量只保留一个主要变更理由。
|
|
20
|
-
|
|
21
|
-
## 架构规则
|
|
22
|
-
|
|
23
|
-
1. 控制面判断不偷塞进工具细节。
|
|
24
|
-
2. 工具只通过注册表接入。
|
|
25
|
-
3. 新状态优先进入现有真相源,不先新建平行 JSON。
|
|
26
|
-
4. skills 负责知识与流程,不替代工具动作。
|
|
27
|
-
5. 总指挥层负责调度,不负责具体文件改写。
|
|
28
|
-
|
|
29
|
-
## 文档规则
|
|
30
|
-
|
|
31
|
-
1. SPEC 写当前真实能力与未来方向,但两者必须分开。
|
|
32
|
-
2. docs 偏解释和维护,spec 偏约束和边界。
|
|
33
|
-
3. ADR 只记录关键决定,不拿来写宣传。
|
|
34
|
-
|
|
35
|
-
## 测试规则
|
|
36
|
-
|
|
37
|
-
1. 关键骨架改动先补失败测试。
|
|
38
|
-
2. 修过的真实 bug 尽量固化成回归测试。
|
|
39
|
-
3. 不为了覆盖率堆低价值测试。
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# 本地命令与流程
|
|
2
|
-
|
|
3
|
-
## 常用命令
|
|
4
|
-
|
|
5
|
-
```powershell
|
|
6
|
-
npm install
|
|
7
|
-
npm run build
|
|
8
|
-
npm run typecheck
|
|
9
|
-
npm test
|
|
10
|
-
npm run dev
|
|
11
|
-
```
|
|
12
|
-
|
|
13
|
-
## 推荐开发流程
|
|
14
|
-
|
|
15
|
-
1. 先确认改动落在哪一层
|
|
16
|
-
2. 先补或设计测试
|
|
17
|
-
3. 再改实现
|
|
18
|
-
4. 运行 `npm test`
|
|
19
|
-
5. 最后更新 SPEC / docs
|
|
20
|
-
|
|
21
|
-
## 写 SPEC 的流程
|
|
22
|
-
|
|
23
|
-
1. 先写当前真实能力
|
|
24
|
-
2. 再写未来方向
|
|
25
|
-
3. 检查有没有把两者混在一起
|
|
26
|
-
4. 检查单文件是否过胖
|
|
27
|
-
|
|
28
|
-
## 写代码的流程
|
|
29
|
-
|
|
30
|
-
1. 先找真相源
|
|
31
|
-
2. 再找工具入口
|
|
32
|
-
3. 最后再看 UI 是否要同步
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# fail-first 第一批测试列表
|
|
2
|
-
|
|
3
|
-
## 先补的测试
|
|
4
|
-
|
|
5
|
-
1. 总指挥层不会破坏现有 continuation
|
|
6
|
-
2. 总指挥层不会绕过 task board 真相源
|
|
7
|
-
3. lead 能在 subagent / teammate / background 之间做正确分流
|
|
8
|
-
4. skills 元数据缺失时有明确失败结果
|
|
9
|
-
5. skill 加载后能被后续 turn 正确识别
|
|
10
|
-
6. reviewer / verifier 角色不会越权修改任务分配
|
|
11
|
-
7. 单文件拆分后 registry 与 runtime 行为不变
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# fixture 规范
|
|
2
|
-
|
|
3
|
-
## 原则
|
|
4
|
-
|
|
5
|
-
fixture 只保留能说明问题的最小状态。
|
|
6
|
-
|
|
7
|
-
## 推荐 fixture 类型
|
|
8
|
-
|
|
9
|
-
- task board 样例
|
|
10
|
-
- protocol request 样例
|
|
11
|
-
- team inbox 样例
|
|
12
|
-
- worktree index 样例
|
|
13
|
-
- compact / resume session 样例
|
|
14
|
-
- skill metadata 样例
|
|
15
|
-
|
|
16
|
-
## 规则
|
|
17
|
-
|
|
18
|
-
1. 一个 fixture 只服务一个测试主题。
|
|
19
|
-
2. 不把大量无关状态塞进同一个 fixture。
|
|
20
|
-
3. 真实 bug 的 fixture 优先长期保留。
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
# 测试策略
|
|
2
|
-
|
|
3
|
-
## 目标
|
|
4
|
-
|
|
5
|
-
测试优先保护 Athlete 的骨架,
|
|
6
|
-
不是为了表面覆盖率。
|
|
7
|
-
|
|
8
|
-
## 当前重点
|
|
9
|
-
|
|
10
|
-
- 主循环没坏
|
|
11
|
-
- context / continuation / recovery 没坏
|
|
12
|
-
- lightweight context externalization 没坏
|
|
13
|
-
- checkpoint / reload / resume 没坏
|
|
14
|
-
- runtime stats / runtime summary 没坏
|
|
15
|
-
- task / background 没坏
|
|
16
|
-
- team / protocol / policy 没坏
|
|
17
|
-
- worktree isolation 没坏
|
|
18
|
-
- skill catalog 与 skill loading 没坏
|
|
19
|
-
- Playwright MCP 接线、优先级与 artifact 路由没坏
|
|
20
|
-
- post-completion closeout 不会退回无意义循环
|
|
21
|
-
|
|
22
|
-
## 当前测试类型
|
|
23
|
-
|
|
24
|
-
### 1. 骨架测试
|
|
25
|
-
|
|
26
|
-
保护架构约束,不让主骨架被改坏。
|
|
27
|
-
|
|
28
|
-
### 2. 缺陷回归测试
|
|
29
|
-
|
|
30
|
-
真实 bug 修掉后,把 bug 固化成测试。
|
|
31
|
-
|
|
32
|
-
### 3. 结构预算测试
|
|
33
|
-
|
|
34
|
-
保护主循环和关键控制面文件不继续长胖。
|
|
35
|
-
|
|
36
|
-
## 当前已覆盖的重点
|
|
37
|
-
|
|
38
|
-
- runtime registry / tool visibility
|
|
39
|
-
- skill metadata / discovery / loading / gating
|
|
40
|
-
- continuation / compact / recovery
|
|
41
|
-
- lightweight context externalization
|
|
42
|
-
- checkpoint 持久化 / reload / resume
|
|
43
|
-
- runtime metrics 持久化 / reload / summary
|
|
44
|
-
- finalize / closeout gating
|
|
45
|
-
- lightweight verification signals
|
|
46
|
-
- orchestrator routing / dispatch
|
|
47
|
-
- protocol / policy / task board truth source
|
|
48
|
-
- Playwright 默认值与 artifact 路由
|
|
49
|
-
- browser-first tool priority
|
|
50
|
-
- shell detour workflow guard
|
|
51
|
-
- post-completion todo/task loop prevention
|
|
52
|
-
|
|
53
|
-
## 命令
|
|
54
|
-
|
|
55
|
-
默认本地测试:
|
|
56
|
-
|
|
57
|
-
```powershell
|
|
58
|
-
npm test
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
只做测试编译:
|
|
62
|
-
|
|
63
|
-
```powershell
|
|
64
|
-
npm run test:build
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
核心测试集:
|
|
68
|
-
|
|
69
|
-
```powershell
|
|
70
|
-
npm run test:core
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
真实 API 验证(不进入默认 `npm test`):
|
|
74
|
-
|
|
75
|
-
```powershell
|
|
76
|
-
npm run verify:runtime-context-api
|
|
77
|
-
npm run verify:runtime-checkpoint-api
|
|
78
|
-
npm run verify:runtime-observability-api
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## 当前原则
|
|
82
|
-
|
|
83
|
-
1. 骨架测试优先。
|
|
84
|
-
2. 回归测试优先。
|
|
85
|
-
3. 默认测试不要强依赖不稳定外部 API。
|
|
86
|
-
4. 真实 API / 真实浏览器验证可以做,但不要强塞进默认 `npm test`。
|
|
87
|
-
5. runtime observability 这类能力必须同时覆盖:
|
|
88
|
-
- 结构化持久化
|
|
89
|
-
- reload 后一致性
|
|
90
|
-
- 用户可读 summary
|
|
91
|
-
- 真实 API 验证
|
|
92
|
-
|
|
93
|
-
## 不建议的做法
|
|
94
|
-
|
|
95
|
-
- 为了数量堆很多低价值小测试
|
|
96
|
-
- 把不稳定的真实 API 测试塞进默认 `npm test`
|
|
97
|
-
- 只测 prompt 文案,不测底层机器状态
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|