oh-pi 0.1.42 → 0.1.43
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.fr.md +31 -26
- package/README.md +31 -26
- package/README.zh.md +31 -26
- package/package.json +1 -1
package/README.fr.md
CHANGED
|
@@ -85,7 +85,7 @@ Détection automatique des clés API depuis les variables d'environnement.
|
|
|
85
85
|
|
|
86
86
|
## 🐜 Colonie de fourmis
|
|
87
87
|
|
|
88
|
-
La fonctionnalité phare. Un essaim multi-agents modelé sur l'écologie réelle des fourmis.
|
|
88
|
+
La fonctionnalité phare. Un essaim multi-agents modelé sur l'écologie réelle des fourmis — profondément intégré au SDK pi.
|
|
89
89
|
|
|
90
90
|
```
|
|
91
91
|
Vous : "Refactorer l'auth des sessions vers JWT"
|
|
@@ -95,9 +95,27 @@ oh-pi :
|
|
|
95
95
|
📋 Pool de tâches généré à partir des découvertes
|
|
96
96
|
⚒️ Fourmis ouvrières exécutent en parallèle (sonnet — capable)
|
|
97
97
|
🛡️ Fourmis soldats révisent tous les changements (sonnet — rigoureux)
|
|
98
|
-
✅ Terminé — rapport
|
|
98
|
+
✅ Terminé — rapport auto-injecté dans la conversation
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
+
### Architecture
|
|
102
|
+
|
|
103
|
+
Chaque fourmi est une `AgentSession` in-process (SDK pi), pas un sous-processus :
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
pi (processus principal)
|
|
107
|
+
└─ ant_colony tool
|
|
108
|
+
└─ queen.ts → runColony()
|
|
109
|
+
└─ spawnAnt() → createAgentSession()
|
|
110
|
+
├─ session.subscribe() → flux de tokens en temps réel
|
|
111
|
+
├─ Zéro surcharge de démarrage (processus partagé)
|
|
112
|
+
└─ Auth et registre de modèles partagés
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Mode interactif :** La colonie tourne en arrière-plan — vous continuez à discuter. Un widget en temps réel affiche la progression, et les résultats sont auto-injectés à la fin.
|
|
116
|
+
|
|
117
|
+
**Mode print (`pi -p`) :** La colonie tourne de manière synchrone, bloque jusqu'à la fin.
|
|
118
|
+
|
|
101
119
|
### Pourquoi des fourmis ?
|
|
102
120
|
|
|
103
121
|
Les vraies colonies de fourmis résolvent des problèmes complexes sans contrôle central. Chaque fourmi suit des règles simples, communique par **pistes de phéromones**, et la colonie s'auto-organise. oh-pi reproduit directement ce modèle :
|
|
@@ -111,16 +129,20 @@ Les vraies colonies de fourmis résolvent des problèmes complexes sans contrôl
|
|
|
111
129
|
| Plus de nourriture → plus de fourmis | Plus de tâches → concurrence plus élevée (auto-adaptée) |
|
|
112
130
|
| Les phéromones s'évaporent | Demi-vie de 10 min — les infos obsolètes s'estompent |
|
|
113
131
|
|
|
132
|
+
### UI en temps réel
|
|
133
|
+
|
|
134
|
+
En mode interactif, la colonie affiche la progression en direct :
|
|
135
|
+
|
|
136
|
+
- **Widget** — fourmis actives et leur flux de sortie
|
|
137
|
+
- **Barre de statut** — progression des tâches, nombre actif, coût
|
|
138
|
+
- **Notification** — résumé à la fin
|
|
139
|
+
|
|
140
|
+
Utilisez `/colony-stop` pour arrêter une colonie en cours.
|
|
141
|
+
|
|
114
142
|
### Contrôle des tours
|
|
115
143
|
|
|
116
144
|
Chaque fourmi a un budget strict de tours pour éviter les exécutions incontrôlées :
|
|
117
145
|
|
|
118
|
-
```
|
|
119
|
-
Indication prompt → La fourmi connaît sa limite, planifie en conséquence
|
|
120
|
-
Avertissement → À maxTurns : avertissement, 1 tour de grâce pour les résultats
|
|
121
|
-
Arrêt forcé → À maxTurns+1 : SIGTERM → SIGKILL si nécessaire
|
|
122
|
-
```
|
|
123
|
-
|
|
124
146
|
Éclaireuse : 8 tours · Ouvrière : 15 tours · Soldat : 8 tours
|
|
125
147
|
|
|
126
148
|
### Sélection des modèles
|
|
@@ -133,18 +155,7 @@ La colonie détecte automatiquement les modèles disponibles et laisse le LLM ch
|
|
|
133
155
|
| Ouvrière | Capable — modifie le code | `claude-sonnet-4-0`, `gpt-4o` |
|
|
134
156
|
| Soldat | Même que ouvrière ou légèrement moins cher | `claude-sonnet-4-0` |
|
|
135
157
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
ant_colony({
|
|
140
|
-
goal: "Migrer vers ESM",
|
|
141
|
-
scoutModel: "claude-haiku-4-5",
|
|
142
|
-
workerModel: "claude-sonnet-4-0",
|
|
143
|
-
soldierModel: "claude-sonnet-4-0"
|
|
144
|
-
})
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Omettez les trois pour utiliser le modèle de session actuel pour chaque fourmi.
|
|
158
|
+
Omettez les modèles pour utiliser le modèle de session actuel pour chaque fourmi.
|
|
148
159
|
|
|
149
160
|
### Rapport de coûts
|
|
150
161
|
|
|
@@ -158,12 +169,6 @@ Le LLM décide quand déployer la colonie. Vous n'avez pas à y penser :
|
|
|
158
169
|
- **Flux parallèles** possibles → colonie
|
|
159
170
|
- **Un seul fichier** → exécution directe (pas de surcharge colonie)
|
|
160
171
|
|
|
161
|
-
Ou déclencher manuellement :
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
/colony migrer tout le projet de CJS vers ESM
|
|
165
|
-
```
|
|
166
|
-
|
|
167
172
|
### Concurrence adaptative
|
|
168
173
|
|
|
169
174
|
La colonie trouve automatiquement le parallélisme optimal pour votre machine :
|
package/README.md
CHANGED
|
@@ -85,7 +85,7 @@ Auto-detects API keys from environment variables.
|
|
|
85
85
|
|
|
86
86
|
## 🐜 Ant Colony
|
|
87
87
|
|
|
88
|
-
The headline feature. A multi-agent swarm modeled after real ant ecology.
|
|
88
|
+
The headline feature. A multi-agent swarm modeled after real ant ecology — deeply integrated into pi's SDK.
|
|
89
89
|
|
|
90
90
|
```
|
|
91
91
|
You: "Refactor auth from sessions to JWT"
|
|
@@ -95,9 +95,27 @@ oh-pi:
|
|
|
95
95
|
📋 Task pool generated from discoveries
|
|
96
96
|
⚒️ Worker ants execute in parallel (sonnet — capable)
|
|
97
97
|
🛡️ Soldier ants review all changes (sonnet — thorough)
|
|
98
|
-
✅ Done —
|
|
98
|
+
✅ Done — report auto-injected into conversation
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
+
### Architecture
|
|
102
|
+
|
|
103
|
+
Each ant is an in-process `AgentSession` (pi SDK), not a child process:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
pi (main process)
|
|
107
|
+
└─ ant_colony tool
|
|
108
|
+
└─ queen.ts → runColony()
|
|
109
|
+
└─ spawnAnt() → createAgentSession()
|
|
110
|
+
├─ session.subscribe() → real-time token stream
|
|
111
|
+
├─ Zero startup overhead (shared process)
|
|
112
|
+
└─ Shared auth & model registry
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**Interactive mode:** Colony runs in the background — you keep chatting. A live widget shows ant progress, and results are auto-injected when done.
|
|
116
|
+
|
|
117
|
+
**Print mode (`pi -p`):** Colony runs synchronously, blocks until complete.
|
|
118
|
+
|
|
101
119
|
### Why ants?
|
|
102
120
|
|
|
103
121
|
Real ant colonies solve complex problems without central control. Each ant follows simple rules, communicates through **pheromone trails**, and the colony self-organizes. oh-pi maps this directly:
|
|
@@ -111,16 +129,20 @@ Real ant colonies solve complex problems without central control. Each ant follo
|
|
|
111
129
|
| More food → more ants | More tasks → higher concurrency (auto-adapted) |
|
|
112
130
|
| Pheromone evaporates | 10-minute half-life — stale info fades |
|
|
113
131
|
|
|
132
|
+
### Real-time UI
|
|
133
|
+
|
|
134
|
+
In interactive mode, the colony shows live progress:
|
|
135
|
+
|
|
136
|
+
- **Widget** — active ants and their current output stream
|
|
137
|
+
- **Status bar** — task progress, active count, cost
|
|
138
|
+
- **Notification** — completion summary when done
|
|
139
|
+
|
|
140
|
+
Use `/colony-stop` to abort a running colony.
|
|
141
|
+
|
|
114
142
|
### Turn Control
|
|
115
143
|
|
|
116
144
|
Each ant has a strict turn budget to prevent runaway execution:
|
|
117
145
|
|
|
118
|
-
```
|
|
119
|
-
Prompt hint → Ant knows its turn limit, plans accordingly
|
|
120
|
-
Warning → At maxTurns: warning logged, 1 grace turn to output results
|
|
121
|
-
Hard kill → At maxTurns+1: SIGTERM → SIGKILL if needed
|
|
122
|
-
```
|
|
123
|
-
|
|
124
146
|
Scout: 8 turns · Worker: 15 turns · Soldier: 8 turns
|
|
125
147
|
|
|
126
148
|
### Model Selection
|
|
@@ -133,18 +155,7 @@ The colony auto-detects available models and lets the LLM pick the best fit per
|
|
|
133
155
|
| Worker | Capable — makes code changes | `claude-sonnet-4-0`, `gpt-4o` |
|
|
134
156
|
| Soldier | Same as worker or slightly cheaper | `claude-sonnet-4-0` |
|
|
135
157
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
ant_colony({
|
|
140
|
-
goal: "Migrate to ESM",
|
|
141
|
-
scoutModel: "claude-haiku-4-5",
|
|
142
|
-
workerModel: "claude-sonnet-4-0",
|
|
143
|
-
soldierModel: "claude-sonnet-4-0"
|
|
144
|
-
})
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Omit all three to use the current session model for every ant.
|
|
158
|
+
Omit model overrides to use the current session model for every ant.
|
|
148
159
|
|
|
149
160
|
### Cost Reporting
|
|
150
161
|
|
|
@@ -158,12 +169,6 @@ The LLM decides when to deploy the colony. You don't have to think about it:
|
|
|
158
169
|
- **Parallel workstreams** possible → colony
|
|
159
170
|
- **Single file** change → direct execution (no colony overhead)
|
|
160
171
|
|
|
161
|
-
Or trigger manually:
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
/colony migrate the entire project from CJS to ESM
|
|
165
|
-
```
|
|
166
|
-
|
|
167
172
|
### Adaptive Concurrency
|
|
168
173
|
|
|
169
174
|
The colony automatically finds the optimal parallelism for your machine:
|
package/README.zh.md
CHANGED
|
@@ -85,7 +85,7 @@ Anthropic · OpenAI · Google Gemini · Groq · OpenRouter · xAI · Mistral ·
|
|
|
85
85
|
|
|
86
86
|
## 🐜 蚁群系统
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
核心功能。模拟真实蚁群生态的多智能体系统 —— 深度整合 pi SDK。
|
|
89
89
|
|
|
90
90
|
```
|
|
91
91
|
你: "把认证从 session 重构为 JWT"
|
|
@@ -95,9 +95,27 @@ oh-pi:
|
|
|
95
95
|
📋 根据发现生成任务池
|
|
96
96
|
⚒️ 工蚁并行执行任务(sonnet — 能力强)
|
|
97
97
|
🛡️ 兵蚁审查所有变更(sonnet — 严谨)
|
|
98
|
-
✅ 完成 —
|
|
98
|
+
✅ 完成 — 报告自动注入对话
|
|
99
99
|
```
|
|
100
100
|
|
|
101
|
+
### 架构
|
|
102
|
+
|
|
103
|
+
每只蚂蚁是进程内的 `AgentSession`(pi SDK),而非子进程:
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
pi(主进程)
|
|
107
|
+
└─ ant_colony tool
|
|
108
|
+
└─ queen.ts → runColony()
|
|
109
|
+
└─ spawnAnt() → createAgentSession()
|
|
110
|
+
├─ session.subscribe() → 实时 token 流
|
|
111
|
+
├─ 零启动开销(共享进程)
|
|
112
|
+
└─ 共享认证和模型注册表
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
**交互模式:** 蚁群在后台运行 —— 你可以继续聊天。实时 widget 显示蚂蚁进度,完成后结果自动注入对话。
|
|
116
|
+
|
|
117
|
+
**Print 模式(`pi -p`):** 蚁群同步运行,阻塞直到完成。
|
|
118
|
+
|
|
101
119
|
### 为什么是蚁群?
|
|
102
120
|
|
|
103
121
|
真实蚁群无需中央控制就能解决复杂问题。每只蚂蚁遵循简单规则,通过**信息素**通信,群体自组织。oh-pi 直接映射:
|
|
@@ -111,16 +129,20 @@ oh-pi:
|
|
|
111
129
|
| 食物越多蚂蚁越多 | 任务越多并发越高(自适应) |
|
|
112
130
|
| 信息素蒸发 | 10 分钟半衰期 — 过时信息自动淡化 |
|
|
113
131
|
|
|
132
|
+
### 实时 UI
|
|
133
|
+
|
|
134
|
+
交互模式下,蚁群显示实时进度:
|
|
135
|
+
|
|
136
|
+
- **Widget** — 活跃蚂蚁及其当前输出流
|
|
137
|
+
- **状态栏** — 任务进度、活跃数量、成本
|
|
138
|
+
- **通知** — 完成时显示汇总
|
|
139
|
+
|
|
140
|
+
使用 `/colony-stop` 中止运行中的蚁群。
|
|
141
|
+
|
|
114
142
|
### 轮次控制
|
|
115
143
|
|
|
116
144
|
每只蚂蚁有严格的轮次预算,防止失控执行:
|
|
117
145
|
|
|
118
|
-
```
|
|
119
|
-
提示词提醒 → 蚂蚁知道自己的轮次限制,提前规划
|
|
120
|
-
警告 → 达到 maxTurns:记录警告,给 1 轮宽限期输出结果
|
|
121
|
-
强制终止 → 超过 maxTurns+1:SIGTERM → 必要时 SIGKILL
|
|
122
|
-
```
|
|
123
|
-
|
|
124
146
|
侦察蚁:8 轮 · 工蚁:15 轮 · 兵蚁:8 轮
|
|
125
147
|
|
|
126
148
|
### 模型选择
|
|
@@ -133,18 +155,7 @@ oh-pi:
|
|
|
133
155
|
| 工蚁 | 能力强 — 执行代码修改 | `claude-sonnet-4-0`, `gpt-4o` |
|
|
134
156
|
| 兵蚁 | 与工蚁相同或稍便宜 | `claude-sonnet-4-0` |
|
|
135
157
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
```
|
|
139
|
-
ant_colony({
|
|
140
|
-
goal: "迁移到 ESM",
|
|
141
|
-
scoutModel: "claude-haiku-4-5",
|
|
142
|
-
workerModel: "claude-sonnet-4-0",
|
|
143
|
-
soldierModel: "claude-sonnet-4-0"
|
|
144
|
-
})
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
不指定则默认使用当前会话模型。
|
|
158
|
+
不指定模型则默认使用当前会话模型。
|
|
148
159
|
|
|
149
160
|
### 成本报告
|
|
150
161
|
|
|
@@ -158,12 +169,6 @@ LLM 自行决定何时部署蚁群,你不需要操心:
|
|
|
158
169
|
- **可并行工作流** → 蚁群
|
|
159
170
|
- **单文件**修改 → 直接执行(无蚁群开销)
|
|
160
171
|
|
|
161
|
-
或手动触发:
|
|
162
|
-
|
|
163
|
-
```
|
|
164
|
-
/colony 把整个项目从 CJS 迁移到 ESM
|
|
165
|
-
```
|
|
166
|
-
|
|
167
172
|
### 自适应并发
|
|
168
173
|
|
|
169
174
|
蚁群自动找到你机器的最优并行度:
|