@botbotgo/agent-harness 0.0.93 → 0.0.94
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 +34 -4
- package/README.zh.md +32 -2
- package/dist/config/workflows/langgraph-workflows.yaml +79 -53
- package/dist/package-version.d.ts +1 -1
- package/dist/package-version.js +1 -1
- package/dist/runtime/agent-runtime-adapter.d.ts +2 -1
- package/dist/runtime/agent-runtime-adapter.js +314 -212
- package/dist/runtime/langgraph-presets.d.ts +4 -2
- package/dist/runtime/langgraph-presets.js +45 -45
- package/dist/runtime/langgraph-profiles.d.ts +6 -0
- package/dist/runtime/langgraph-profiles.js +206 -0
- package/dist/workspace/agent-binding-compiler.js +33 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -418,9 +418,10 @@ spec:
|
|
|
418
418
|
entryNode: planner
|
|
419
419
|
nodes:
|
|
420
420
|
- id: planner
|
|
421
|
-
kind:
|
|
421
|
+
kind: llm
|
|
422
|
+
role: planner
|
|
422
423
|
- id: executor
|
|
423
|
-
kind:
|
|
424
|
+
kind: agent
|
|
424
425
|
edges:
|
|
425
426
|
- from: planner
|
|
426
427
|
to: executor
|
|
@@ -458,16 +459,45 @@ The repository also checks in matching YAML workflow resources for these pattern
|
|
|
458
459
|
`config/workflows/langgraph-workflows.yaml`, so applications can reference them directly with
|
|
459
460
|
`workflow.ref: langgraph-workflow/<pattern-id>`.
|
|
460
461
|
|
|
461
|
-
For
|
|
462
|
+
For agent-driven presets such as `routing`, `parallelization`, `handoff`, and `orchestrator-workers`, also set:
|
|
462
463
|
|
|
463
464
|
```yaml
|
|
464
465
|
config:
|
|
465
466
|
preset: handoff
|
|
466
|
-
|
|
467
|
+
agent: researcher
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
LangGraph also supports profile-first entry config for common application shapes:
|
|
471
|
+
|
|
472
|
+
- `coding-runtime`
|
|
473
|
+
- `personal-assistant`
|
|
474
|
+
- `research-runtime`
|
|
475
|
+
- `approval-review-runtime`
|
|
476
|
+
- `claw-style-assistant`
|
|
477
|
+
- `chat-operator`
|
|
478
|
+
- `copilot-sidecar`
|
|
479
|
+
- `task-delegation-hub`
|
|
480
|
+
|
|
481
|
+
```yaml
|
|
482
|
+
config:
|
|
483
|
+
profile: copilot-sidecar
|
|
484
|
+
with:
|
|
485
|
+
coderAgent: repo-coder-lite
|
|
467
486
|
```
|
|
468
487
|
|
|
469
488
|
These presets are harness-owned workflow templates built on top of the LangGraph backend. They are not LangGraph-native node kinds or edge conditions.
|
|
470
489
|
|
|
490
|
+
Current workflow primitive node kinds:
|
|
491
|
+
|
|
492
|
+
- `llm`
|
|
493
|
+
- `agent`
|
|
494
|
+
- `tool`
|
|
495
|
+
- `approval`
|
|
496
|
+
- `condition`
|
|
497
|
+
|
|
498
|
+
Only these primitive node kinds are supported in workflow YAML. Role-shaped names such as `planner`, `reviewer`,
|
|
499
|
+
`replanner`, `specialist`, `executor`, and `finalizer` are not part of the final DSL.
|
|
500
|
+
|
|
471
501
|
Use an explicit workflow ref when an application wants full graph control:
|
|
472
502
|
|
|
473
503
|
```yaml
|
package/README.zh.md
CHANGED
|
@@ -418,14 +418,44 @@ spec:
|
|
|
418
418
|
entryNode: planner
|
|
419
419
|
nodes:
|
|
420
420
|
- id: planner
|
|
421
|
-
kind:
|
|
421
|
+
kind: llm
|
|
422
|
+
role: planner
|
|
422
423
|
- id: executor
|
|
423
|
-
kind:
|
|
424
|
+
kind: agent
|
|
424
425
|
edges:
|
|
425
426
|
- from: planner
|
|
426
427
|
to: executor
|
|
427
428
|
```
|
|
428
429
|
|
|
430
|
+
当前建议优先使用的 workflow primitive node kinds:
|
|
431
|
+
|
|
432
|
+
- `llm`
|
|
433
|
+
- `agent`
|
|
434
|
+
- `tool`
|
|
435
|
+
- `approval`
|
|
436
|
+
- `condition`
|
|
437
|
+
|
|
438
|
+
最终版 workflow YAML 只支持这些 primitive node kinds。`planner`、`reviewer`、`replanner`、`specialist`、
|
|
439
|
+
`executor`、`finalizer` 这类角色型名字不属于最终 DSL。
|
|
440
|
+
|
|
441
|
+
LangGraph 也支持面向常见应用入口的 profile-first 配置:
|
|
442
|
+
|
|
443
|
+
- `coding-runtime`
|
|
444
|
+
- `personal-assistant`
|
|
445
|
+
- `research-runtime`
|
|
446
|
+
- `approval-review-runtime`
|
|
447
|
+
- `claw-style-assistant`
|
|
448
|
+
- `chat-operator`
|
|
449
|
+
- `copilot-sidecar`
|
|
450
|
+
- `task-delegation-hub`
|
|
451
|
+
|
|
452
|
+
```yaml
|
|
453
|
+
config:
|
|
454
|
+
profile: copilot-sidecar
|
|
455
|
+
with:
|
|
456
|
+
coderAgent: repo-coder-lite
|
|
457
|
+
```
|
|
458
|
+
|
|
429
459
|
```yaml
|
|
430
460
|
apiVersion: agent-harness/v1alpha1
|
|
431
461
|
kind: Agent
|
|
@@ -7,24 +7,28 @@ spec:
|
|
|
7
7
|
entryNode: planner
|
|
8
8
|
nodes:
|
|
9
9
|
- id: planner
|
|
10
|
-
kind:
|
|
10
|
+
kind: llm
|
|
11
|
+
role: planner
|
|
11
12
|
prompt: >-
|
|
12
13
|
You are the workflow planner. Produce a concise plan for the user request
|
|
13
14
|
before execution starts.
|
|
14
15
|
- id: executor
|
|
15
|
-
kind:
|
|
16
|
+
kind: agent
|
|
16
17
|
- id: reviewer
|
|
17
|
-
kind:
|
|
18
|
+
kind: llm
|
|
19
|
+
role: reviewer
|
|
18
20
|
prompt: >-
|
|
19
21
|
Review the current result, call out missing verification or obvious gaps,
|
|
20
22
|
and state whether the work looks sufficient.
|
|
21
23
|
- id: replanner
|
|
22
|
-
kind:
|
|
24
|
+
kind: llm
|
|
25
|
+
role: replanner
|
|
23
26
|
prompt: >-
|
|
24
27
|
Refine the plan based on the reviewer feedback and current result.
|
|
25
28
|
Return only the updated plan.
|
|
26
29
|
- id: finalizer
|
|
27
|
-
kind:
|
|
30
|
+
kind: llm
|
|
31
|
+
role: finalizer
|
|
28
32
|
prompt: >-
|
|
29
33
|
Rewrite the current result into a concise user-facing final answer.
|
|
30
34
|
Preserve facts and caveats.
|
|
@@ -47,20 +51,22 @@ spec:
|
|
|
47
51
|
entryNode: executor
|
|
48
52
|
nodes:
|
|
49
53
|
- id: executor
|
|
50
|
-
kind:
|
|
54
|
+
kind: agent
|
|
51
55
|
edges: []
|
|
52
56
|
- id: prompt-chaining
|
|
53
57
|
entryNode: planner
|
|
54
58
|
nodes:
|
|
55
59
|
- id: planner
|
|
56
|
-
kind:
|
|
60
|
+
kind: llm
|
|
61
|
+
role: planner
|
|
57
62
|
prompt: >-
|
|
58
63
|
You are the workflow planner. Produce a concise execution plan for the user request
|
|
59
64
|
before execution starts.
|
|
60
65
|
- id: executor
|
|
61
|
-
kind:
|
|
66
|
+
kind: agent
|
|
62
67
|
- id: finalizer
|
|
63
|
-
kind:
|
|
68
|
+
kind: llm
|
|
69
|
+
role: finalizer
|
|
64
70
|
prompt: >-
|
|
65
71
|
Rewrite the current result into a concise user-facing final answer.
|
|
66
72
|
Preserve facts and caveats.
|
|
@@ -74,49 +80,54 @@ spec:
|
|
|
74
80
|
entryNode: planner
|
|
75
81
|
nodes:
|
|
76
82
|
- id: planner
|
|
77
|
-
kind:
|
|
83
|
+
kind: llm
|
|
84
|
+
role: planner
|
|
78
85
|
prompt: >-
|
|
79
86
|
You are the workflow planner. Produce a concise execution plan for the user request
|
|
80
87
|
before execution starts.
|
|
81
|
-
- id:
|
|
82
|
-
kind:
|
|
83
|
-
|
|
88
|
+
- id: worker
|
|
89
|
+
kind: agent
|
|
90
|
+
agent: worker
|
|
84
91
|
- id: finalizer
|
|
85
|
-
kind:
|
|
92
|
+
kind: llm
|
|
93
|
+
role: finalizer
|
|
86
94
|
prompt: >-
|
|
87
95
|
Rewrite the current result into a concise user-facing final answer.
|
|
88
96
|
Preserve facts and caveats.
|
|
89
97
|
edges:
|
|
90
98
|
- from: planner
|
|
91
|
-
to:
|
|
92
|
-
- from:
|
|
99
|
+
to: worker
|
|
100
|
+
- from: worker
|
|
93
101
|
to: finalizer
|
|
94
102
|
when: has_result
|
|
95
103
|
- id: parallelization
|
|
96
104
|
entryNode: planner
|
|
97
105
|
nodes:
|
|
98
106
|
- id: planner
|
|
99
|
-
kind:
|
|
107
|
+
kind: llm
|
|
108
|
+
role: planner
|
|
100
109
|
prompt: >-
|
|
101
110
|
You are the workflow planner. Produce a concise execution plan for the user request
|
|
102
111
|
before execution starts.
|
|
103
|
-
- id:
|
|
104
|
-
kind:
|
|
105
|
-
|
|
112
|
+
- id: worker
|
|
113
|
+
kind: agent
|
|
114
|
+
agent: worker
|
|
106
115
|
- id: reviewer
|
|
107
|
-
kind:
|
|
116
|
+
kind: llm
|
|
117
|
+
role: reviewer
|
|
108
118
|
prompt: >-
|
|
109
119
|
Review the current result, call out missing verification or obvious gaps,
|
|
110
120
|
and state whether the work looks sufficient.
|
|
111
121
|
- id: finalizer
|
|
112
|
-
kind:
|
|
122
|
+
kind: llm
|
|
123
|
+
role: finalizer
|
|
113
124
|
prompt: >-
|
|
114
125
|
Rewrite the current result into a concise user-facing final answer.
|
|
115
126
|
Preserve facts and caveats.
|
|
116
127
|
edges:
|
|
117
128
|
- from: planner
|
|
118
|
-
to:
|
|
119
|
-
- from:
|
|
129
|
+
to: worker
|
|
130
|
+
- from: worker
|
|
120
131
|
to: reviewer
|
|
121
132
|
when: has_result
|
|
122
133
|
- from: reviewer
|
|
@@ -126,14 +137,16 @@ spec:
|
|
|
126
137
|
entryNode: planner
|
|
127
138
|
nodes:
|
|
128
139
|
- id: planner
|
|
129
|
-
kind:
|
|
140
|
+
kind: llm
|
|
141
|
+
role: planner
|
|
130
142
|
prompt: >-
|
|
131
143
|
You are the workflow planner. Produce a concise execution plan for the user request
|
|
132
144
|
before execution starts.
|
|
133
145
|
- id: executor
|
|
134
|
-
kind:
|
|
146
|
+
kind: agent
|
|
135
147
|
- id: finalizer
|
|
136
|
-
kind:
|
|
148
|
+
kind: llm
|
|
149
|
+
role: finalizer
|
|
137
150
|
prompt: >-
|
|
138
151
|
Rewrite the current result into a concise user-facing final answer.
|
|
139
152
|
Preserve facts and caveats.
|
|
@@ -147,24 +160,28 @@ spec:
|
|
|
147
160
|
entryNode: planner
|
|
148
161
|
nodes:
|
|
149
162
|
- id: planner
|
|
150
|
-
kind:
|
|
163
|
+
kind: llm
|
|
164
|
+
role: planner
|
|
151
165
|
prompt: >-
|
|
152
166
|
You are the workflow planner. Produce a concise plan for the user request
|
|
153
167
|
before execution starts.
|
|
154
168
|
- id: executor
|
|
155
|
-
kind:
|
|
169
|
+
kind: agent
|
|
156
170
|
- id: reviewer
|
|
157
|
-
kind:
|
|
171
|
+
kind: llm
|
|
172
|
+
role: reviewer
|
|
158
173
|
prompt: >-
|
|
159
174
|
Review the current result, call out missing verification or obvious gaps,
|
|
160
175
|
and state whether the work looks sufficient.
|
|
161
176
|
- id: replanner
|
|
162
|
-
kind:
|
|
177
|
+
kind: llm
|
|
178
|
+
role: replanner
|
|
163
179
|
prompt: >-
|
|
164
180
|
Refine the plan based on the reviewer feedback and current result.
|
|
165
181
|
Return only the updated plan.
|
|
166
182
|
- id: finalizer
|
|
167
|
-
kind:
|
|
183
|
+
kind: llm
|
|
184
|
+
role: finalizer
|
|
168
185
|
prompt: >-
|
|
169
186
|
Rewrite the current result into a concise user-facing final answer.
|
|
170
187
|
Preserve facts and caveats.
|
|
@@ -187,19 +204,22 @@ spec:
|
|
|
187
204
|
entryNode: executor
|
|
188
205
|
nodes:
|
|
189
206
|
- id: executor
|
|
190
|
-
kind:
|
|
207
|
+
kind: agent
|
|
191
208
|
- id: reviewer
|
|
192
|
-
kind:
|
|
209
|
+
kind: llm
|
|
210
|
+
role: reviewer
|
|
193
211
|
prompt: >-
|
|
194
212
|
Review the current result, call out missing verification or obvious gaps,
|
|
195
213
|
and state whether the work looks sufficient.
|
|
196
214
|
- id: replanner
|
|
197
|
-
kind:
|
|
215
|
+
kind: llm
|
|
216
|
+
role: replanner
|
|
198
217
|
prompt: >-
|
|
199
218
|
Refine the plan based on the reviewer feedback and current result.
|
|
200
219
|
Return only the updated plan.
|
|
201
220
|
- id: finalizer
|
|
202
|
-
kind:
|
|
221
|
+
kind: llm
|
|
222
|
+
role: finalizer
|
|
203
223
|
prompt: >-
|
|
204
224
|
Rewrite the current result into a concise user-facing final answer.
|
|
205
225
|
Preserve facts and caveats.
|
|
@@ -220,16 +240,18 @@ spec:
|
|
|
220
240
|
entryNode: planner
|
|
221
241
|
nodes:
|
|
222
242
|
- id: planner
|
|
223
|
-
kind:
|
|
243
|
+
kind: llm
|
|
244
|
+
role: planner
|
|
224
245
|
prompt: >-
|
|
225
246
|
You are the workflow planner. Produce a concise execution plan for the user request
|
|
226
247
|
before execution starts.
|
|
227
248
|
- id: approval
|
|
228
249
|
kind: approval
|
|
229
250
|
- id: executor
|
|
230
|
-
kind:
|
|
251
|
+
kind: agent
|
|
231
252
|
- id: finalizer
|
|
232
|
-
kind:
|
|
253
|
+
kind: llm
|
|
254
|
+
role: finalizer
|
|
233
255
|
prompt: >-
|
|
234
256
|
Rewrite the current result into a concise user-facing final answer.
|
|
235
257
|
Preserve facts and caveats.
|
|
@@ -246,45 +268,49 @@ spec:
|
|
|
246
268
|
to: finalizer
|
|
247
269
|
when: has_result
|
|
248
270
|
- id: handoff
|
|
249
|
-
entryNode:
|
|
271
|
+
entryNode: worker
|
|
250
272
|
nodes:
|
|
251
|
-
- id:
|
|
252
|
-
kind:
|
|
253
|
-
|
|
273
|
+
- id: worker
|
|
274
|
+
kind: agent
|
|
275
|
+
agent: worker
|
|
254
276
|
- id: finalizer
|
|
255
|
-
kind:
|
|
277
|
+
kind: llm
|
|
278
|
+
role: finalizer
|
|
256
279
|
prompt: >-
|
|
257
280
|
Rewrite the current result into a concise user-facing final answer.
|
|
258
281
|
Preserve facts and caveats.
|
|
259
282
|
edges:
|
|
260
|
-
- from:
|
|
283
|
+
- from: worker
|
|
261
284
|
to: finalizer
|
|
262
285
|
when: has_result
|
|
263
286
|
- id: orchestrator-workers
|
|
264
287
|
entryNode: planner
|
|
265
288
|
nodes:
|
|
266
289
|
- id: planner
|
|
267
|
-
kind:
|
|
290
|
+
kind: llm
|
|
291
|
+
role: planner
|
|
268
292
|
prompt: >-
|
|
269
293
|
You are the workflow planner. Produce a concise plan for the user request
|
|
270
294
|
before execution starts.
|
|
271
|
-
- id:
|
|
272
|
-
kind:
|
|
273
|
-
|
|
295
|
+
- id: worker
|
|
296
|
+
kind: agent
|
|
297
|
+
agent: worker
|
|
274
298
|
- id: reviewer
|
|
275
|
-
kind:
|
|
299
|
+
kind: llm
|
|
300
|
+
role: reviewer
|
|
276
301
|
prompt: >-
|
|
277
302
|
Review the current result, call out missing verification or obvious gaps,
|
|
278
303
|
and state whether the work looks sufficient.
|
|
279
304
|
- id: finalizer
|
|
280
|
-
kind:
|
|
305
|
+
kind: llm
|
|
306
|
+
role: finalizer
|
|
281
307
|
prompt: >-
|
|
282
308
|
Rewrite the current result into a concise user-facing final answer.
|
|
283
309
|
Preserve facts and caveats.
|
|
284
310
|
edges:
|
|
285
311
|
- from: planner
|
|
286
|
-
to:
|
|
287
|
-
- from:
|
|
312
|
+
to: worker
|
|
313
|
+
- from: worker
|
|
288
314
|
to: reviewer
|
|
289
315
|
when: has_result
|
|
290
316
|
- from: reviewer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const AGENT_HARNESS_VERSION = "0.0.
|
|
1
|
+
export declare const AGENT_HARNESS_VERSION = "0.0.93";
|
package/dist/package-version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const AGENT_HARNESS_VERSION = "0.0.
|
|
1
|
+
export const AGENT_HARNESS_VERSION = "0.0.93";
|
|
@@ -67,6 +67,7 @@ export declare class AgentRuntimeAdapter {
|
|
|
67
67
|
private resolveSubagents;
|
|
68
68
|
private createLangChainRunnable;
|
|
69
69
|
private normalizeLangGraphWorkflowNode;
|
|
70
|
+
private invokeLangGraphToolNode;
|
|
70
71
|
private listLangGraphWorkflowNodes;
|
|
71
72
|
private normalizeLangGraphWorkflowEdge;
|
|
72
73
|
private listLangGraphWorkflowEdges;
|
|
@@ -90,7 +91,7 @@ export declare class AgentRuntimeAdapter {
|
|
|
90
91
|
private loadLangGraphSession;
|
|
91
92
|
private clearLangGraphSession;
|
|
92
93
|
private invokeWorkflowNodeModel;
|
|
93
|
-
private
|
|
94
|
+
private invokeLangGraphAgentNode;
|
|
94
95
|
private createLangGraphRunnable;
|
|
95
96
|
private extractExecutedToolResults;
|
|
96
97
|
private extractLangGraphResultOutput;
|