@beeos-ai/device-agent 0.4.3 → 0.5.0
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/.pi/extensions/android-tools.ts +146 -15
- package/dist/adapters/agent-gateway-client.d.ts +37 -0
- package/dist/adapters/agent-gateway-client.js +45 -0
- package/dist/adapters/agent-gateway-client.js.map +1 -1
- package/dist/adapters/agentcore-pi.d.ts +22 -0
- package/dist/adapters/agentcore-pi.js +48 -0
- package/dist/adapters/agentcore-pi.js.map +1 -1
- package/dist/adapters/device-android-adb.d.ts +47 -0
- package/dist/adapters/device-android-adb.js +50 -0
- package/dist/adapters/device-android-adb.js.map +1 -1
- package/dist/adapters/device-desktop.d.ts +12 -0
- package/dist/adapters/device-desktop.js +31 -0
- package/dist/adapters/device-desktop.js.map +1 -1
- package/dist/agent-runtime/adapters/base.d.ts +20 -0
- package/dist/agent-runtime/adapters/base.js.map +1 -1
- package/dist/agent-runtime/agent-runner.d.ts +4 -2
- package/dist/agent-runtime/agent-runner.js.map +1 -1
- package/dist/agent-runtime/core.d.ts +60 -0
- package/dist/agent-runtime/core.js +190 -9
- package/dist/agent-runtime/core.js.map +1 -1
- package/dist/agent-runtime/feedback.d.ts +56 -0
- package/dist/agent-runtime/feedback.js +54 -0
- package/dist/agent-runtime/feedback.js.map +1 -0
- package/dist/agent-runtime/index.d.ts +1 -0
- package/dist/agent-runtime/index.js +1 -0
- package/dist/agent-runtime/index.js.map +1 -1
- package/dist/agent-runtime/plan-executor.js +24 -0
- package/dist/agent-runtime/plan-executor.js.map +1 -1
- package/dist/agent-runtime/planner/base.d.ts +10 -0
- package/dist/agent-runtime/planner/base.js.map +1 -1
- package/dist/agent-runtime/planner/llm-planner.js +1 -0
- package/dist/agent-runtime/planner/llm-planner.js.map +1 -1
- package/dist/agent-runtime/planner/prompts.d.ts +3 -0
- package/dist/agent-runtime/planner/prompts.js +12 -0
- package/dist/agent-runtime/planner/prompts.js.map +1 -1
- package/dist/agent-runtime/reflection.d.ts +25 -6
- package/dist/agent-runtime/reflection.js +64 -22
- package/dist/agent-runtime/reflection.js.map +1 -1
- package/dist/agent-runtime/reflectors/policy.d.ts +10 -4
- package/dist/agent-runtime/reflectors/policy.js +19 -6
- package/dist/agent-runtime/reflectors/policy.js.map +1 -1
- package/dist/agent-runtime/shortcuts/fs-store.d.ts +41 -0
- package/dist/agent-runtime/shortcuts/fs-store.js +122 -0
- package/dist/agent-runtime/shortcuts/fs-store.js.map +1 -0
- package/dist/agent-runtime/shortcuts/in-memory-store.d.ts +20 -0
- package/dist/agent-runtime/shortcuts/in-memory-store.js +64 -0
- package/dist/agent-runtime/shortcuts/in-memory-store.js.map +1 -0
- package/dist/agent-runtime/shortcuts/index.d.ts +10 -0
- package/dist/agent-runtime/shortcuts/index.js +10 -0
- package/dist/agent-runtime/shortcuts/index.js.map +1 -0
- package/dist/agent-runtime/shortcuts/types.d.ts +69 -0
- package/dist/agent-runtime/shortcuts/types.js +17 -0
- package/dist/agent-runtime/shortcuts/types.js.map +1 -0
- package/dist/app/agent-host.d.ts +83 -0
- package/dist/app/agent-host.js +345 -32
- package/dist/app/agent-host.js.map +1 -1
- package/dist/app/session-manager.d.ts +33 -4
- package/dist/app/session-manager.js +27 -5
- package/dist/app/session-manager.js.map +1 -1
- package/dist/bootstrap.js +187 -3
- package/dist/bootstrap.js.map +1 -1
- package/dist/config/loader.js +22 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +18 -0
- package/dist/config/schema.js +118 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/inbound/acp/handlers/session.js.map +1 -1
- package/dist/mcp-client/client.d.ts +6 -0
- package/dist/mcp-client/client.js +11 -0
- package/dist/mcp-client/client.js.map +1 -1
- package/dist/mcp-client/runtime.d.ts +13 -0
- package/dist/orchestrator-system-prompt.d.ts +26 -0
- package/dist/orchestrator-system-prompt.js +118 -2
- package/dist/orchestrator-system-prompt.js.map +1 -1
- package/dist/pi-context.d.ts +50 -0
- package/dist/pi-context.js.map +1 -1
- package/dist/ports/device.d.ts +18 -0
- package/dist/resources/augmenter.d.ts +48 -0
- package/dist/resources/augmenter.js +126 -0
- package/dist/resources/augmenter.js.map +1 -0
- package/dist/resources/cache.d.ts +57 -0
- package/dist/resources/cache.js +107 -0
- package/dist/resources/cache.js.map +1 -0
- package/dist/resources/index.d.ts +17 -0
- package/dist/resources/index.js +15 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/resources/lifecycle/disk-pressure.d.ts +75 -0
- package/dist/resources/lifecycle/disk-pressure.js +148 -0
- package/dist/resources/lifecycle/disk-pressure.js.map +1 -0
- package/dist/resources/lifecycle/index.d.ts +7 -0
- package/dist/resources/lifecycle/index.js +7 -0
- package/dist/resources/lifecycle/index.js.map +1 -0
- package/dist/resources/lifecycle/manager.d.ts +38 -0
- package/dist/resources/lifecycle/manager.js +205 -0
- package/dist/resources/lifecycle/manager.js.map +1 -0
- package/dist/resources/lifecycle/sweeper.d.ts +36 -0
- package/dist/resources/lifecycle/sweeper.js +179 -0
- package/dist/resources/lifecycle/sweeper.js.map +1 -0
- package/dist/resources/lifecycle/types.d.ts +180 -0
- package/dist/resources/lifecycle/types.js +46 -0
- package/dist/resources/lifecycle/types.js.map +1 -0
- package/dist/resources/parsers.d.ts +28 -0
- package/dist/resources/parsers.js +88 -0
- package/dist/resources/parsers.js.map +1 -0
- package/dist/resources/registry.d.ts +47 -0
- package/dist/resources/registry.js +107 -0
- package/dist/resources/registry.js.map +1 -0
- package/dist/resources/resolvers/beeos-file-resolver.d.ts +62 -0
- package/dist/resources/resolvers/beeos-file-resolver.js +109 -0
- package/dist/resources/resolvers/beeos-file-resolver.js.map +1 -0
- package/dist/resources/resolvers/errors.d.ts +11 -0
- package/dist/resources/resolvers/errors.js +23 -0
- package/dist/resources/resolvers/errors.js.map +1 -0
- package/dist/resources/resolvers/mime-table.d.ts +41 -0
- package/dist/resources/resolvers/mime-table.js +92 -0
- package/dist/resources/resolvers/mime-table.js.map +1 -0
- package/dist/resources/resolvers/url-resolver.d.ts +85 -0
- package/dist/resources/resolvers/url-resolver.js +495 -0
- package/dist/resources/resolvers/url-resolver.js.map +1 -0
- package/dist/resources/shortcut-facade.d.ts +51 -0
- package/dist/resources/shortcut-facade.js +72 -0
- package/dist/resources/shortcut-facade.js.map +1 -0
- package/dist/resources/telemetry.d.ts +52 -0
- package/dist/resources/telemetry.js +59 -0
- package/dist/resources/telemetry.js.map +1 -0
- package/dist/resources/types.d.ts +249 -0
- package/dist/resources/types.js +29 -0
- package/dist/resources/types.js.map +1 -0
- package/dist/shortcuts/builtins/download-to-device.d.ts +83 -0
- package/dist/shortcuts/builtins/download-to-device.js +125 -0
- package/dist/shortcuts/builtins/download-to-device.js.map +1 -0
- package/dist/shortcuts/builtins/find-app-package.d.ts +79 -0
- package/dist/shortcuts/builtins/find-app-package.js +168 -0
- package/dist/shortcuts/builtins/find-app-package.js.map +1 -0
- package/dist/shortcuts/builtins/index.d.ts +32 -0
- package/dist/shortcuts/builtins/index.js +37 -0
- package/dist/shortcuts/builtins/index.js.map +1 -0
- package/dist/shortcuts/builtins/open-deeplink.d.ts +68 -0
- package/dist/shortcuts/builtins/open-deeplink.js +142 -0
- package/dist/shortcuts/builtins/open-deeplink.js.map +1 -0
- package/dist/shortcuts/builtins/set-clipboard.d.ts +65 -0
- package/dist/shortcuts/builtins/set-clipboard.js +112 -0
- package/dist/shortcuts/builtins/set-clipboard.js.map +1 -0
- package/dist/shortcuts/index.d.ts +11 -0
- package/dist/shortcuts/index.js +11 -0
- package/dist/shortcuts/index.js.map +1 -0
- package/dist/shortcuts/registry.d.ts +56 -0
- package/dist/shortcuts/registry.js +70 -0
- package/dist/shortcuts/registry.js.map +1 -0
- package/dist/shortcuts/router.d.ts +91 -0
- package/dist/shortcuts/router.js +158 -0
- package/dist/shortcuts/router.js.map +1 -0
- package/dist/shortcuts/types.d.ts +219 -0
- package/dist/shortcuts/types.js +46 -0
- package/dist/shortcuts/types.js.map +1 -0
- package/package.json +3 -3
- package/dist/agent-runtime/skills/sqlite-store.d.ts +0 -60
- package/dist/agent-runtime/skills/sqlite-store.js +0 -234
- package/dist/agent-runtime/skills/sqlite-store.js.map +0 -1
- package/dist/test-lan-autoglm.d.ts +0 -7
- package/dist/test-lan-autoglm.js +0 -46
- package/dist/test-lan-autoglm.js.map +0 -1
- package/dist/test-mem-breakdown.d.ts +0 -1
- package/dist/test-mem-breakdown.js +0 -103
- package/dist/test-mem-breakdown.js.map +0 -1
- package/dist/test-mem.d.ts +0 -1
- package/dist/test-mem.js +0 -60
- package/dist/test-mem.js.map +0 -1
- package/dist/test-mobile-use.d.ts +0 -1
- package/dist/test-mobile-use.js +0 -18
- package/dist/test-mobile-use.js.map +0 -1
- package/dist/test-screenshot-loop.d.ts +0 -1
- package/dist/test-screenshot-loop.js +0 -43
- package/dist/test-screenshot-loop.js.map +0 -1
- package/dist/test-screenshot.d.ts +0 -1
- package/dist/test-screenshot.js +0 -10
- package/dist/test-screenshot.js.map +0 -1
- package/dist/test-ui-xml-dump.d.ts +0 -15
- package/dist/test-ui-xml-dump.js +0 -49
- package/dist/test-ui-xml-dump.js.map +0 -1
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
* - reflection veto
|
|
30
30
|
* - external `AbortSignal` aborted
|
|
31
31
|
*/
|
|
32
|
+
import { createHash } from "node:crypto";
|
|
32
33
|
import { isTerminal } from "@beeos-ai/device-common";
|
|
34
|
+
import { formatFeedbackForPrompt } from "./feedback.js";
|
|
33
35
|
import { HierarchicalReflector } from "./reflection.js";
|
|
34
36
|
/* ──────────────────────────────────────────────────────────────────────── */
|
|
35
37
|
/* AgentLoop */
|
|
@@ -42,10 +44,40 @@ export class AgentLoop {
|
|
|
42
44
|
reflector;
|
|
43
45
|
notes = [];
|
|
44
46
|
trajectoryVerdict;
|
|
47
|
+
/**
|
|
48
|
+
* One-way bus for diagnostics that need to surface in the next
|
|
49
|
+
* `Observation.task` prefix. Drained right before each predict; entries
|
|
50
|
+
* are pushed by veto / act_failed / trajectory-reflector paths. See
|
|
51
|
+
* `feedback.ts` for the rationale (closes the reflection feedback loop
|
|
52
|
+
* without adapter protocol changes).
|
|
53
|
+
*/
|
|
54
|
+
pendingFeedback = [];
|
|
55
|
+
/**
|
|
56
|
+
* Append-only counterpart of {@link pendingFeedback} — never drained.
|
|
57
|
+
* Surfaced via `AgentRunResult.feedbackLog` so the PlanExecutor can
|
|
58
|
+
* thread the most recent entries into `PlanContext.failureChain` on
|
|
59
|
+
* replan.
|
|
60
|
+
*/
|
|
61
|
+
feedbackLog = [];
|
|
62
|
+
/**
|
|
63
|
+
* Per-veto-code *consecutive* counter — only tracks the most recent
|
|
64
|
+
* veto code so that an A→B→A sequence is NOT treated as "A fired
|
|
65
|
+
* twice in a row" (that's exactly what `consecutive` means). Reset on
|
|
66
|
+
* any successful action dispatch. When a single code fires twice in a
|
|
67
|
+
* row we escalate to a fatal `reflection_veto` so the PlanExecutor
|
|
68
|
+
* can `replan()` — much faster than waiting for `maybeVeto` to spot
|
|
69
|
+
* four identical actions.
|
|
70
|
+
*/
|
|
71
|
+
vetoCodeCount = {};
|
|
45
72
|
constructor(opts) {
|
|
46
73
|
this.opts = opts;
|
|
47
74
|
this.reflector = opts.reflector ?? new HierarchicalReflector(opts.adapter);
|
|
48
75
|
}
|
|
76
|
+
/** Push feedback into both the pending queue and the immutable log. */
|
|
77
|
+
pushFeedback(item) {
|
|
78
|
+
this.pendingFeedback.push(item);
|
|
79
|
+
this.feedbackLog.push(item);
|
|
80
|
+
}
|
|
49
81
|
async run() {
|
|
50
82
|
const maxSteps = this.opts.maxSteps ?? AgentLoop.DEFAULT_MAX_STEPS;
|
|
51
83
|
const timeoutMs = this.opts.timeoutMs ?? AgentLoop.DEFAULT_TIMEOUT_MS;
|
|
@@ -83,6 +115,22 @@ export class AgentLoop {
|
|
|
83
115
|
await this.fire("onError", err);
|
|
84
116
|
return this.finish("error", step, err.message, usage, err);
|
|
85
117
|
}
|
|
118
|
+
// Compute a normalised screen-state fingerprint. Used downstream by
|
|
119
|
+
// reflectors to detect "no progress" stalls more reliably than
|
|
120
|
+
// coordinate-similarity heuristics. Only meaningful when uiDump is
|
|
121
|
+
// present; pure-vision flows fall back to the legacy 8px rule.
|
|
122
|
+
obs.screenStateHash = computeScreenStateHash(obs.uiDump);
|
|
123
|
+
// Stamp the previous step's `screenStateHashAfter` with the current
|
|
124
|
+
// observation's fingerprint — the MCP act + roundtrip + subsequent
|
|
125
|
+
// observe() naturally act as the settle wait, so this is the
|
|
126
|
+
// cheapest "did the screen actually change?" signal we can offer
|
|
127
|
+
// to `maybeBlockAction` without an extra MCP call.
|
|
128
|
+
if (this.history.length > 0 && obs.screenStateHash !== undefined) {
|
|
129
|
+
const prev = this.history[this.history.length - 1];
|
|
130
|
+
if (prev.screenStateHashAfter === undefined) {
|
|
131
|
+
prev.screenStateHashAfter = obs.screenStateHash;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
86
134
|
// ── Phase 1.5 — derive a text-only observation summary. Prefer
|
|
87
135
|
// uiDump's top text/content-desc nodes (already fetched when the
|
|
88
136
|
// adapter sets `consumesUiDump`); otherwise we fall back to the
|
|
@@ -90,12 +138,26 @@ export class AgentLoop {
|
|
|
90
138
|
// downstream reflectors read so they don't need the screenshot.
|
|
91
139
|
let observationSummary = summarizeUiDump(obs.uiDump);
|
|
92
140
|
// ── 2. Predict ────────────────────────────────────────────────
|
|
141
|
+
// Splice any pending reflector feedback into the prompt so the
|
|
142
|
+
// grounder sees that its previous action was blocked / failed
|
|
143
|
+
// before it picks the next one. This closes the reflection
|
|
144
|
+
// feedback loop without touching adapter protocols. The drained
|
|
145
|
+
// entries are still preserved in `feedbackLog` for the executor.
|
|
146
|
+
// Snapshot pending feedback for this round's prompt, but DO NOT drain
|
|
147
|
+
// the queue yet — if `predictAction` throws, the LLM never actually
|
|
148
|
+
// sees the SYSTEM NOTICE, so the feedback must survive to the next
|
|
149
|
+
// round. We only clear after a successful predict (see below).
|
|
150
|
+
const feedbackPrefix = formatFeedbackForPrompt(this.pendingFeedback);
|
|
151
|
+
const obsForPredict = feedbackPrefix
|
|
152
|
+
? { ...obs, task: `${feedbackPrefix}${obs.task}` }
|
|
153
|
+
: obs;
|
|
93
154
|
let prediction;
|
|
94
155
|
try {
|
|
95
|
-
prediction = await this.opts.adapter.predictAction(
|
|
156
|
+
prediction = await this.opts.adapter.predictAction(obsForPredict, this.history, {
|
|
96
157
|
signal: this.opts.signal,
|
|
97
158
|
hooks: { onText: this.opts.hooks?.onText, onReasoning: this.opts.hooks?.onReasoning },
|
|
98
159
|
});
|
|
160
|
+
this.pendingFeedback = [];
|
|
99
161
|
}
|
|
100
162
|
catch (e) {
|
|
101
163
|
if (this.opts.signal?.aborted) {
|
|
@@ -117,6 +179,7 @@ export class AgentLoop {
|
|
|
117
179
|
observationSummary: "",
|
|
118
180
|
actionResult: "predict_failed",
|
|
119
181
|
actErrorMessage: err.message,
|
|
182
|
+
screenStateHashBefore: obs.screenStateHash,
|
|
120
183
|
});
|
|
121
184
|
continue;
|
|
122
185
|
}
|
|
@@ -148,8 +211,10 @@ export class AgentLoop {
|
|
|
148
211
|
if (note.trim().length > 0) {
|
|
149
212
|
this.notes.push(note.trim());
|
|
150
213
|
}
|
|
151
|
-
this.recordHistory(step, prediction, observationSummary, "ok");
|
|
214
|
+
this.recordHistory(step, prediction, observationSummary, "ok", undefined, obs.screenStateHash);
|
|
152
215
|
await this.fireStep(step, prediction, false);
|
|
216
|
+
// Successful (non-vetoed) action — clear veto escalation counter.
|
|
217
|
+
this.vetoCodeCount = {};
|
|
153
218
|
// Heuristic veto still applies (4 identical take_note in a row =
|
|
154
219
|
// stalled grounder), so fall through to the bottom check.
|
|
155
220
|
const veto = this.reflector.maybeVeto(this.history, step, maxSteps);
|
|
@@ -183,8 +248,35 @@ export class AgentLoop {
|
|
|
183
248
|
const veto = this.reflector.maybeBlockAction(this.history, action);
|
|
184
249
|
if (veto) {
|
|
185
250
|
const note = `pre-sanity blocked: ${veto.code} — ${veto.reason}`;
|
|
186
|
-
this.recordHistory(step, prediction, note, "skipped", veto.reason);
|
|
251
|
+
this.recordHistory(step, prediction, note, "skipped", veto.reason, obs.screenStateHash);
|
|
187
252
|
await this.fireStep(step, prediction, false);
|
|
253
|
+
// Push feedback so the next predict explicitly sees that the
|
|
254
|
+
// action was NOT executed. Modern instruction-tuned LLMs honour
|
|
255
|
+
// a fresh user-side correction over their own self-inferred
|
|
256
|
+
// history, which is what closes the AutoGLM "I tapped X" loop.
|
|
257
|
+
this.pushFeedback({
|
|
258
|
+
source: "pre_sanity",
|
|
259
|
+
code: veto.code,
|
|
260
|
+
reason: veto.reason,
|
|
261
|
+
});
|
|
262
|
+
// Escalation cadence — same code firing twice *in a row* is
|
|
263
|
+
// the canonical "stuck on a bad idea" signal. Bail straight
|
|
264
|
+
// to `reflection_veto` so the PlanExecutor can `replan()`
|
|
265
|
+
// instead of waiting for `maybeVeto` to spot four identical
|
|
266
|
+
// actions. We track only the most recent code so an A→B→A
|
|
267
|
+
// sequence is correctly treated as "no consecutive run of A".
|
|
268
|
+
const prevCount = this.vetoCodeCount[veto.code] ?? 0;
|
|
269
|
+
this.vetoCodeCount = { [veto.code]: prevCount + 1 };
|
|
270
|
+
if (this.vetoCodeCount[veto.code] >= 2) {
|
|
271
|
+
const msg = `veto loop on ${veto.code}: ${veto.reason}`;
|
|
272
|
+
const fatal = {
|
|
273
|
+
code: "REFLECTION_VETO",
|
|
274
|
+
message: msg,
|
|
275
|
+
fatal: true,
|
|
276
|
+
};
|
|
277
|
+
await this.fire("onError", fatal);
|
|
278
|
+
return this.finish("reflection_veto", step, msg, usage, fatal);
|
|
279
|
+
}
|
|
188
280
|
// Surface as a non-fatal error event so the orchestrator can log it.
|
|
189
281
|
await this.fire("onError", {
|
|
190
282
|
code: "REFLECTION_VETO",
|
|
@@ -200,7 +292,8 @@ export class AgentLoop {
|
|
|
200
292
|
stringFromPayload(action.payload, "finalText") ??
|
|
201
293
|
"task complete";
|
|
202
294
|
await this.fireStep(step, prediction, true);
|
|
203
|
-
this.recordHistory(step, prediction, observationSummary, "terminal");
|
|
295
|
+
this.recordHistory(step, prediction, observationSummary, "terminal", undefined, obs.screenStateHash);
|
|
296
|
+
this.markTerminalHashAfter(obs.screenStateHash);
|
|
204
297
|
return this.finish("done", step, finalText, usage, lastError);
|
|
205
298
|
}
|
|
206
299
|
if (action.type === "fail") {
|
|
@@ -215,7 +308,8 @@ export class AgentLoop {
|
|
|
215
308
|
};
|
|
216
309
|
await this.fire("onError", err);
|
|
217
310
|
await this.fireStep(step, prediction, true);
|
|
218
|
-
this.recordHistory(step, prediction, observationSummary, "terminal", finalText);
|
|
311
|
+
this.recordHistory(step, prediction, observationSummary, "terminal", finalText, obs.screenStateHash);
|
|
312
|
+
this.markTerminalHashAfter(obs.screenStateHash);
|
|
219
313
|
return this.finish("fail", step, finalText, usage, err);
|
|
220
314
|
}
|
|
221
315
|
if (action.type === "call_for_user") {
|
|
@@ -224,7 +318,8 @@ export class AgentLoop {
|
|
|
224
318
|
stringFromPayload(action.payload, "reason") ??
|
|
225
319
|
"operator takeover requested";
|
|
226
320
|
await this.fireStep(step, prediction, true);
|
|
227
|
-
this.recordHistory(step, prediction, observationSummary, "terminal");
|
|
321
|
+
this.recordHistory(step, prediction, observationSummary, "terminal", undefined, obs.screenStateHash);
|
|
322
|
+
this.markTerminalHashAfter(obs.screenStateHash);
|
|
228
323
|
if (!this.opts.waitForUser) {
|
|
229
324
|
return this.finish("call_for_user", step, finalText, usage, lastError);
|
|
230
325
|
}
|
|
@@ -248,8 +343,15 @@ export class AgentLoop {
|
|
|
248
343
|
lastError = err;
|
|
249
344
|
await this.fire("onError", err);
|
|
250
345
|
// Record the failed step, then keep going so the model can recover.
|
|
251
|
-
this.recordHistory(step, prediction, observationSummary, "act_failed", err.message);
|
|
346
|
+
this.recordHistory(step, prediction, observationSummary, "act_failed", err.message, obs.screenStateHash);
|
|
252
347
|
await this.fireStep(step, prediction, false);
|
|
348
|
+
// Surface the failure to the next predict so the grounder doesn't
|
|
349
|
+
// assume the action took effect.
|
|
350
|
+
this.pushFeedback({
|
|
351
|
+
source: "act_failed",
|
|
352
|
+
code: "act_failed",
|
|
353
|
+
reason: err.message,
|
|
354
|
+
});
|
|
253
355
|
// Action reflector is most useful exactly here — fire it before
|
|
254
356
|
// the next predict so the grounder sees the verdict in history.
|
|
255
357
|
await this.maybeRunActionReflector(prediction, "act_failed", usage);
|
|
@@ -262,8 +364,12 @@ export class AgentLoop {
|
|
|
262
364
|
result: actResult,
|
|
263
365
|
durationMs,
|
|
264
366
|
});
|
|
265
|
-
this.recordHistory(step, prediction, observationSummary, "ok");
|
|
367
|
+
this.recordHistory(step, prediction, observationSummary, "ok", undefined, obs.screenStateHash);
|
|
266
368
|
await this.fireStep(step, prediction, false);
|
|
369
|
+
// Successful (non-vetoed) action — clear veto escalation counter
|
|
370
|
+
// so a future legitimate retry sequence isn't penalised by stale
|
|
371
|
+
// counts from an earlier loop arc.
|
|
372
|
+
this.vetoCodeCount = {};
|
|
267
373
|
// ── 4. Reflect (model-based action reflector — Phase 1.4) ──────
|
|
268
374
|
await this.maybeRunActionReflector(prediction, "ok", usage);
|
|
269
375
|
// ── 5. Heuristic veto ─────────────────────────────────────────
|
|
@@ -455,6 +561,16 @@ export class AgentLoop {
|
|
|
455
561
|
last.rationale = (last.rationale ? last.rationale + "\n" : "") + tag;
|
|
456
562
|
}
|
|
457
563
|
this.trajectoryVerdict = { verdict: verdict.verdict, reason: verdict.reason };
|
|
564
|
+
// Push into the feedback queue so the next predict (or the planner
|
|
565
|
+
// on replan) sees the trajectory verdict explicitly. For `off_track`
|
|
566
|
+
// this is the primary signal because the loop keeps going.
|
|
567
|
+
this.pushFeedback({
|
|
568
|
+
source: "trajectory_reflector",
|
|
569
|
+
code: verdict.verdict,
|
|
570
|
+
reason: verdict.suggestion
|
|
571
|
+
? `${verdict.reason} (suggestion: ${verdict.suggestion})`
|
|
572
|
+
: verdict.reason,
|
|
573
|
+
});
|
|
458
574
|
if (verdict.verdict === "stuck") {
|
|
459
575
|
return `trajectory stuck: ${verdict.reason}`;
|
|
460
576
|
}
|
|
@@ -467,7 +583,7 @@ export class AgentLoop {
|
|
|
467
583
|
return undefined;
|
|
468
584
|
}
|
|
469
585
|
}
|
|
470
|
-
recordHistory(step, p, summary, actionResult, actErrorMessage) {
|
|
586
|
+
recordHistory(step, p, summary, actionResult, actErrorMessage, screenStateHashBefore) {
|
|
471
587
|
this.history.push({
|
|
472
588
|
stepIdx: step,
|
|
473
589
|
action: p.action,
|
|
@@ -476,8 +592,27 @@ export class AgentLoop {
|
|
|
476
592
|
actionResult,
|
|
477
593
|
confidence: p.confidence,
|
|
478
594
|
actErrorMessage,
|
|
595
|
+
screenStateHashBefore,
|
|
479
596
|
});
|
|
480
597
|
}
|
|
598
|
+
/**
|
|
599
|
+
* Backfill `screenStateHashAfter` on the just-pushed terminal history
|
|
600
|
+
* entry. Terminal actions (`done` / `fail` / `call_for_user`) return
|
|
601
|
+
* immediately and the next-iteration `observe()` never runs, so the
|
|
602
|
+
* normal hash-after backfill at the top of the loop body never fires.
|
|
603
|
+
* For terminal entries we set after = before — the screen cannot
|
|
604
|
+
* possibly change after the loop exits — eliminating the residual
|
|
605
|
+
* `undefined` that downstream consumers (telemetry, replay) had to
|
|
606
|
+
* special-case.
|
|
607
|
+
*/
|
|
608
|
+
markTerminalHashAfter(hash) {
|
|
609
|
+
if (this.history.length === 0)
|
|
610
|
+
return;
|
|
611
|
+
const last = this.history[this.history.length - 1];
|
|
612
|
+
if (last.screenStateHashAfter === undefined) {
|
|
613
|
+
last.screenStateHashAfter = hash;
|
|
614
|
+
}
|
|
615
|
+
}
|
|
481
616
|
async fireStep(step, prediction, finished) {
|
|
482
617
|
if (!this.opts.hooks?.onStep)
|
|
483
618
|
return;
|
|
@@ -516,6 +651,7 @@ export class AgentLoop {
|
|
|
516
651
|
lastError,
|
|
517
652
|
notes: [...this.notes],
|
|
518
653
|
trajectoryVerdict: this.trajectoryVerdict,
|
|
654
|
+
feedbackLog: [...this.feedbackLog],
|
|
519
655
|
};
|
|
520
656
|
}
|
|
521
657
|
}
|
|
@@ -609,6 +745,51 @@ function summarizeRationale(rationale) {
|
|
|
609
745
|
function truncateForSummary(s) {
|
|
610
746
|
return s.length > 200 ? `${s.slice(0, 199)}…` : s;
|
|
611
747
|
}
|
|
748
|
+
/**
|
|
749
|
+
* Attribute names that uiautomator emits but which can flip on tiny
|
|
750
|
+
* focus / scroll / selection / cursor changes that don't constitute
|
|
751
|
+
* "screen progress" from the agent's perspective. Stripping them keeps
|
|
752
|
+
* `screenStateHash` stable across cosmetic jitter so `no_progress_repeat`
|
|
753
|
+
* actually fires when the screen is functionally unchanged.
|
|
754
|
+
*
|
|
755
|
+
* `bounds` is also stripped (separately) for pixel jitter on layout
|
|
756
|
+
* recalculation. Add new noisy attributes here as we observe them.
|
|
757
|
+
*/
|
|
758
|
+
const NOISY_UI_DUMP_ATTRS = [
|
|
759
|
+
"bounds",
|
|
760
|
+
"index",
|
|
761
|
+
"focused",
|
|
762
|
+
"focusable",
|
|
763
|
+
"selected",
|
|
764
|
+
"scrollable",
|
|
765
|
+
"long-clickable",
|
|
766
|
+
"checkable",
|
|
767
|
+
"password",
|
|
768
|
+
];
|
|
769
|
+
const NOISY_UI_DUMP_ATTR_RE = new RegExp(`\\b(?:${NOISY_UI_DUMP_ATTRS.join("|")})="[^"]*"`, "g");
|
|
770
|
+
/**
|
|
771
|
+
* Compute a normalised fingerprint of the on-screen state for stall
|
|
772
|
+
* detection. The hash is computed over the uiautomator XML with all
|
|
773
|
+
* {@link NOISY_UI_DUMP_ATTRS} stripped and whitespace collapsed so
|
|
774
|
+
* that focus/scroll/cursor jitter does not flip the hash. Two screens
|
|
775
|
+
* that look identical to a human should produce the same hash.
|
|
776
|
+
*
|
|
777
|
+
* Returns `undefined` when no `uiDump` is available — pure-vision
|
|
778
|
+
* adapters (Open-AutoGLM, UI-TARS, Qwen-VL) skip the dump round-trip
|
|
779
|
+
* and fall back to the legacy 8px coordinate-similarity heuristic in
|
|
780
|
+
* `HierarchicalReflector.maybeBlockAction`.
|
|
781
|
+
*/
|
|
782
|
+
export function computeScreenStateHash(uiDump) {
|
|
783
|
+
if (!uiDump)
|
|
784
|
+
return undefined;
|
|
785
|
+
const normalised = uiDump
|
|
786
|
+
.replace(NOISY_UI_DUMP_ATTR_RE, "")
|
|
787
|
+
.replace(/\s+/g, " ")
|
|
788
|
+
.trim();
|
|
789
|
+
if (!normalised)
|
|
790
|
+
return undefined;
|
|
791
|
+
return createHash("md5").update(normalised).digest("hex");
|
|
792
|
+
}
|
|
612
793
|
function scaleCoord(v, system, screen, _axis) {
|
|
613
794
|
if (system === "0-1000")
|
|
614
795
|
return Math.round((v / 1000) * screen);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/agent-runtime/core.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/agent-runtime/core.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-runtime/feedback — one-way bus for diagnostics that need to reach
|
|
3
|
+
* the next `predictAction` call WITHOUT touching the adapter protocol.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists (KISS):
|
|
6
|
+
* The reflector stack writes diagnostics into `StepHistory.rationale` /
|
|
7
|
+
* `StepHistory.actErrorMessage`, but every adapter (autoglm / uitars /
|
|
8
|
+
* qwenvl / guiowl / maiui / showui) maintains its OWN private
|
|
9
|
+
* `Message[]` context inside `ModelClient.updateContext` and never reads
|
|
10
|
+
* `StepHistory`. As a result, when AgentLoop vetoes an action the model
|
|
11
|
+
* keeps re-emitting the same blocked action because (a) it doesn't see
|
|
12
|
+
* the veto reason and (b) its own context still says "I tapped X".
|
|
13
|
+
*
|
|
14
|
+
* We close the loop without changing the adapter protocol: AgentLoop
|
|
15
|
+
* maintains a `pendingFeedback` queue, and right before the next predict
|
|
16
|
+
* it splices a `[SYSTEM NOTICE]` block into `Observation.task`. Modern
|
|
17
|
+
* instruction-tuned LLMs prioritise the latest user message over their
|
|
18
|
+
* own self-inferred prior turns, so a user-side correction is enough
|
|
19
|
+
* for AutoGLM-Phone-9B / GLM-4 / Claude / GPT-4 to course-correct.
|
|
20
|
+
*
|
|
21
|
+
* This is a deliberate alternative to refactoring 6 adapters' private
|
|
22
|
+
* context APIs (the "research-grade" route). See
|
|
23
|
+
* `.cursor/plans/device-agent_reflector_hardening_efea035f.plan.md`
|
|
24
|
+
* for the cost-benefit analysis.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Diagnostic the AgentLoop wants the next predict to see. Sources are kept
|
|
28
|
+
* coarse; concrete codes (e.g. `"no_progress_repeat"`, `"act_failed"`,
|
|
29
|
+
* `"trajectory_stuck"`) live in the reasoning string so we don't have to
|
|
30
|
+
* pre-enumerate every reflector code in this central type.
|
|
31
|
+
*/
|
|
32
|
+
export interface StepFeedback {
|
|
33
|
+
/** Which subsystem produced the feedback. */
|
|
34
|
+
source: "pre_sanity" | "act_failed" | "trajectory_reflector";
|
|
35
|
+
/** Stable machine-readable code (e.g. `"no_progress_repeat"`). */
|
|
36
|
+
code: string;
|
|
37
|
+
/** Short human-readable explanation surfaced into the next prompt. */
|
|
38
|
+
reason: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Render a list of {@link StepFeedback} entries into a `[SYSTEM NOTICE]`
|
|
42
|
+
* block to prepend onto the next `Observation.task`. Returns the empty
|
|
43
|
+
* string when `items` is empty so the caller can skip the splice
|
|
44
|
+
* cheaply.
|
|
45
|
+
*
|
|
46
|
+
* Deliberate prompt design choices:
|
|
47
|
+
* - `[SYSTEM NOTICE — read carefully]` header uses caps + an em-dash
|
|
48
|
+
* so the model treats it as out-of-band metadata, not part of the
|
|
49
|
+
* task description.
|
|
50
|
+
* - The phrase `was NOT executed` is in caps to override any prior
|
|
51
|
+
* adapter context that says the action happened.
|
|
52
|
+
* - The closing reminder ("Pick a different approach…") gives the
|
|
53
|
+
* grounder a concrete escape hatch so it doesn't simply retry the
|
|
54
|
+
* same target with a tiny perturbation.
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatFeedbackForPrompt(items: readonly StepFeedback[]): string;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* agent-runtime/feedback — one-way bus for diagnostics that need to reach
|
|
3
|
+
* the next `predictAction` call WITHOUT touching the adapter protocol.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists (KISS):
|
|
6
|
+
* The reflector stack writes diagnostics into `StepHistory.rationale` /
|
|
7
|
+
* `StepHistory.actErrorMessage`, but every adapter (autoglm / uitars /
|
|
8
|
+
* qwenvl / guiowl / maiui / showui) maintains its OWN private
|
|
9
|
+
* `Message[]` context inside `ModelClient.updateContext` and never reads
|
|
10
|
+
* `StepHistory`. As a result, when AgentLoop vetoes an action the model
|
|
11
|
+
* keeps re-emitting the same blocked action because (a) it doesn't see
|
|
12
|
+
* the veto reason and (b) its own context still says "I tapped X".
|
|
13
|
+
*
|
|
14
|
+
* We close the loop without changing the adapter protocol: AgentLoop
|
|
15
|
+
* maintains a `pendingFeedback` queue, and right before the next predict
|
|
16
|
+
* it splices a `[SYSTEM NOTICE]` block into `Observation.task`. Modern
|
|
17
|
+
* instruction-tuned LLMs prioritise the latest user message over their
|
|
18
|
+
* own self-inferred prior turns, so a user-side correction is enough
|
|
19
|
+
* for AutoGLM-Phone-9B / GLM-4 / Claude / GPT-4 to course-correct.
|
|
20
|
+
*
|
|
21
|
+
* This is a deliberate alternative to refactoring 6 adapters' private
|
|
22
|
+
* context APIs (the "research-grade" route). See
|
|
23
|
+
* `.cursor/plans/device-agent_reflector_hardening_efea035f.plan.md`
|
|
24
|
+
* for the cost-benefit analysis.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* Render a list of {@link StepFeedback} entries into a `[SYSTEM NOTICE]`
|
|
28
|
+
* block to prepend onto the next `Observation.task`. Returns the empty
|
|
29
|
+
* string when `items` is empty so the caller can skip the splice
|
|
30
|
+
* cheaply.
|
|
31
|
+
*
|
|
32
|
+
* Deliberate prompt design choices:
|
|
33
|
+
* - `[SYSTEM NOTICE — read carefully]` header uses caps + an em-dash
|
|
34
|
+
* so the model treats it as out-of-band metadata, not part of the
|
|
35
|
+
* task description.
|
|
36
|
+
* - The phrase `was NOT executed` is in caps to override any prior
|
|
37
|
+
* adapter context that says the action happened.
|
|
38
|
+
* - The closing reminder ("Pick a different approach…") gives the
|
|
39
|
+
* grounder a concrete escape hatch so it doesn't simply retry the
|
|
40
|
+
* same target with a tiny perturbation.
|
|
41
|
+
*/
|
|
42
|
+
export function formatFeedbackForPrompt(items) {
|
|
43
|
+
if (items.length === 0)
|
|
44
|
+
return "";
|
|
45
|
+
const lines = items.map((f) => `- [${f.source}:${f.code}] ${f.reason}`);
|
|
46
|
+
return [
|
|
47
|
+
"[SYSTEM NOTICE — read carefully]",
|
|
48
|
+
"Your previous action was NOT executed by the runtime.",
|
|
49
|
+
...lines,
|
|
50
|
+
"Pick a different approach (different coordinates, different gesture, or change strategy).",
|
|
51
|
+
"",
|
|
52
|
+
].join("\n");
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=feedback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/agent-runtime/feedback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAiBH;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAA8B;IACpE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;IACxE,OAAO;QACL,kCAAkC;QAClC,uDAAuD;QACvD,GAAG,KAAK;QACR,2FAA2F;QAC3F,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { AgentLoop, type AgentErrorCode, type AgentErrorEvent, type AgentLoopTerminator, type AgentRunHooks, type AgentRunOptions, type AgentRunResult, type AgentStepEvent, type AgentToolEvent, } from "./core.js";
|
|
7
7
|
export { HierarchicalReflector, actionsEqual, type HierarchicalReflectorOptions, type PreActionVeto, } from "./reflection.js";
|
|
8
|
+
export { formatFeedbackForPrompt, type StepFeedback } from "./feedback.js";
|
|
8
9
|
export { HIGH_RISK_VERBS, LLMActionReflector, type ActionReflectCtx, type ActionReflectVerdict, type ActionReflectorGating, type IActionReflector, type LLMActionReflectorOptions, } from "./reflectors/action-reflector.js";
|
|
9
10
|
export { buildReflectorPolicyFromEnv, resolveActionReflector, resolveTrajectoryReflector, type ReflectorPolicy, } from "./reflectors/policy.js";
|
|
10
11
|
export { availableAdapters, clearAdapters, makePrediction, MockAdapter, OpenAIAdapter, parsedToAction, registerAdapter, resolveAdapter, resolveAdapterSync, UITarsAdapter, type AdapterDescriptor, type IModelAdapter, type MockAdapterOptions, type ModelUsage, type OpenAIAdapterOptions, type PredictHooks, type PredictOptions, type Prediction, type StepHistory, } from "./adapters/index.js";
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { AgentLoop, } from "./core.js";
|
|
7
7
|
export { HierarchicalReflector, actionsEqual, } from "./reflection.js";
|
|
8
|
+
export { formatFeedbackForPrompt } from "./feedback.js";
|
|
8
9
|
export { HIGH_RISK_VERBS, LLMActionReflector, } from "./reflectors/action-reflector.js";
|
|
9
10
|
export { buildReflectorPolicyFromEnv, resolveActionReflector, resolveTrajectoryReflector, } from "./reflectors/policy.js";
|
|
10
11
|
export { availableAdapters, clearAdapters, makePrediction, MockAdapter, OpenAIAdapter, parsedToAction, registerAdapter, resolveAdapter, resolveAdapterSync, UITarsAdapter, } from "./adapters/index.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,GASV,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,YAAY,GAGb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,eAAe,EACf,kBAAkB,GAMnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,GAUd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,uBAAuB,EACvB,eAAe,GAYhB,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent-runtime/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,SAAS,GASV,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,qBAAqB,EACrB,YAAY,GAGb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,uBAAuB,EAAqB,MAAM,eAAe,CAAC;AAE3E,OAAO,EACL,eAAe,EACf,kBAAkB,GAMnB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,0BAA0B,GAE3B,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,WAAW,EACX,aAAa,EACb,cAAc,EACd,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,GAUd,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,gBAAgB,EAChB,cAAc,EACd,oBAAoB,GAOrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAA0B,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,WAAW,GAIZ,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,MAAM,EACN,qBAAqB,EACrB,qBAAqB,EACrB,iBAAiB,EACjB,WAAW,EACX,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,UAAU,EACV,uBAAuB,EACvB,eAAe,GAYhB,MAAM,mBAAmB,CAAC"}
|
|
@@ -74,6 +74,15 @@ export class PlanExecutor {
|
|
|
74
74
|
* failure mode.
|
|
75
75
|
*/
|
|
76
76
|
let lastTrajectoryVerdict;
|
|
77
|
+
/**
|
|
78
|
+
* KISS hardening — append-only feedback ring across the whole plan
|
|
79
|
+
* run. Each inner AgentLoop's `feedbackLog` is concatenated here
|
|
80
|
+
* (capped at the last `MAX_AGGREGATED_FEEDBACK` entries). Threaded
|
|
81
|
+
* into `PlanContext.failureChain` so the planner sees the structured
|
|
82
|
+
* veto / act_failed trail accumulated across **all** sub-tasks, not
|
|
83
|
+
* just the one that just failed.
|
|
84
|
+
*/
|
|
85
|
+
const aggregatedFeedback = [];
|
|
77
86
|
// ── Initial plan ────────────────────────────────────────────────────
|
|
78
87
|
// The planner round-trip can fail intermittently (upstream LLM 5xx /
|
|
79
88
|
// network reset). Don't let that bubble up as a fatal task error —
|
|
@@ -231,6 +240,14 @@ export class PlanExecutor {
|
|
|
231
240
|
notes.push(...result.notes);
|
|
232
241
|
if (result.trajectoryVerdict)
|
|
233
242
|
lastTrajectoryVerdict = result.trajectoryVerdict;
|
|
243
|
+
aggregatedFeedback.push(...result.feedbackLog);
|
|
244
|
+
// Cap the buffer so a long-running plan with many failures doesn't
|
|
245
|
+
// grow memory unboundedly — we only ever surface the last 3 entries
|
|
246
|
+
// anyway, but keep a small history (~32) for telemetry / debugging.
|
|
247
|
+
const MAX_AGGREGATED_FEEDBACK = 32;
|
|
248
|
+
if (aggregatedFeedback.length > MAX_AGGREGATED_FEEDBACK) {
|
|
249
|
+
aggregatedFeedback.splice(0, aggregatedFeedback.length - MAX_AGGREGATED_FEEDBACK);
|
|
250
|
+
}
|
|
234
251
|
lastTerminator = result.terminator;
|
|
235
252
|
lastFinalText = result.finalText;
|
|
236
253
|
if (SUCCESS_TERMINATORS.has(result.terminator)) {
|
|
@@ -273,6 +290,13 @@ export class PlanExecutor {
|
|
|
273
290
|
// Phase 2.2 / 2.3 — surface the most recent trajectory verdict so
|
|
274
291
|
// the planner can react to "off_track" / "stuck" explicitly.
|
|
275
292
|
trajectoryVerdict: lastTrajectoryVerdict,
|
|
293
|
+
// KISS hardening — surface the last 3 reflector feedback entries
|
|
294
|
+
// accumulated across **all** sub-tasks so the planner sees the
|
|
295
|
+
// precise failure trail (pre-sanity vetoes, MCP failures,
|
|
296
|
+
// trajectory verdicts) rather than having to parse
|
|
297
|
+
// `failureReason`. Cross-sub-task accumulation matters when an
|
|
298
|
+
// earlier step failed in the same way as the current one.
|
|
299
|
+
failureChain: aggregatedFeedback.length > 0 ? aggregatedFeedback.slice(-3) : undefined,
|
|
276
300
|
};
|
|
277
301
|
try {
|
|
278
302
|
const repl = await this.opts.planner.replan(ctx, { signal: this.opts.signal });
|