@beeos-ai/device-agent 0.12.7 → 0.14.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/dist/agent-runtime/adapters/base.d.ts +2 -0
- package/dist/agent-runtime/adapters/base.js +1 -0
- package/dist/agent-runtime/adapters/base.js.map +1 -1
- package/dist/agent-runtime/adapters/openai.js +39 -17
- package/dist/agent-runtime/adapters/openai.js.map +1 -1
- package/dist/agent-runtime/advanced/app-card.d.ts +23 -0
- package/dist/agent-runtime/advanced/app-card.js +99 -0
- package/dist/agent-runtime/advanced/app-card.js.map +1 -0
- package/dist/agent-runtime/advanced/knowledge.d.ts +15 -0
- package/dist/agent-runtime/advanced/knowledge.js +85 -0
- package/dist/agent-runtime/advanced/knowledge.js.map +1 -0
- package/dist/agent-runtime/advanced/subgoal-verifier.d.ts +37 -0
- package/dist/agent-runtime/advanced/subgoal-verifier.js +190 -0
- package/dist/agent-runtime/advanced/subgoal-verifier.js.map +1 -0
- package/dist/agent-runtime/advanced/task-state.d.ts +20 -0
- package/dist/agent-runtime/advanced/task-state.js +60 -0
- package/dist/agent-runtime/advanced/task-state.js.map +1 -0
- package/dist/agent-runtime/agent-runner.d.ts +16 -27
- package/dist/agent-runtime/agent-runner.js +19 -132
- package/dist/agent-runtime/agent-runner.js.map +1 -1
- package/dist/agent-runtime/core.d.ts +8 -0
- package/dist/agent-runtime/core.js +24 -2
- package/dist/agent-runtime/core.js.map +1 -1
- package/dist/agent-runtime/execution-mode.d.ts +28 -0
- package/dist/agent-runtime/execution-mode.js +51 -0
- package/dist/agent-runtime/execution-mode.js.map +1 -0
- package/dist/agent-runtime/factory.d.ts +6 -4
- package/dist/agent-runtime/factory.js +4 -4
- package/dist/agent-runtime/factory.js.map +1 -1
- package/dist/agent-runtime/index.d.ts +9 -2
- package/dist/agent-runtime/index.js +7 -0
- package/dist/agent-runtime/index.js.map +1 -1
- package/dist/agent-runtime/models/base.d.ts +2 -0
- package/dist/agent-runtime/models/client.d.ts +1 -0
- package/dist/agent-runtime/models/client.js +90 -1
- package/dist/agent-runtime/models/client.js.map +1 -1
- package/dist/agent-runtime/models/runtime-registry.d.ts +28 -0
- package/dist/agent-runtime/models/runtime-registry.js +59 -0
- package/dist/agent-runtime/models/runtime-registry.js.map +1 -0
- package/dist/agent-runtime/models/vlm/autoglm.js +14 -9
- package/dist/agent-runtime/models/vlm/autoglm.js.map +1 -1
- package/dist/agent-runtime/models/vlm/base.d.ts +15 -1
- package/dist/agent-runtime/models/vlm/base.js +31 -10
- package/dist/agent-runtime/models/vlm/base.js.map +1 -1
- package/dist/agent-runtime/models/vlm/general.d.ts +7 -1
- package/dist/agent-runtime/models/vlm/general.js +43 -9
- package/dist/agent-runtime/models/vlm/general.js.map +1 -1
- package/dist/agent-runtime/models/vlm/guiowl.js +4 -13
- package/dist/agent-runtime/models/vlm/guiowl.js.map +1 -1
- package/dist/agent-runtime/models/vlm/index.d.ts +1 -0
- package/dist/agent-runtime/models/vlm/index.js +1 -0
- package/dist/agent-runtime/models/vlm/index.js.map +1 -1
- package/dist/agent-runtime/models/vlm/maiui.js +4 -6
- package/dist/agent-runtime/models/vlm/maiui.js.map +1 -1
- package/dist/agent-runtime/models/vlm/qwen38.d.ts +1 -0
- package/dist/agent-runtime/models/vlm/qwen38.js +241 -0
- package/dist/agent-runtime/models/vlm/qwen38.js.map +1 -0
- package/dist/agent-runtime/models/vlm/qwenvl.js +4 -6
- package/dist/agent-runtime/models/vlm/qwenvl.js.map +1 -1
- package/dist/agent-runtime/models/vlm/shared/tool-call.d.ts +6 -2
- package/dist/agent-runtime/models/vlm/shared/tool-call.js +91 -17
- package/dist/agent-runtime/models/vlm/shared/tool-call.js.map +1 -1
- package/dist/agent-runtime/modes/hybrid/index.d.ts +25 -13
- package/dist/agent-runtime/modes/hybrid/index.js +74 -28
- package/dist/agent-runtime/modes/hybrid/index.js.map +1 -1
- package/dist/agent-runtime/modes/hybrid/planner/base.d.ts +4 -0
- package/dist/agent-runtime/modes/hybrid/planner/base.js.map +1 -1
- package/dist/agent-runtime/modes/hybrid/planner/llm-planner.js +2 -0
- package/dist/agent-runtime/modes/hybrid/planner/llm-planner.js.map +1 -1
- package/dist/agent-runtime/modes/hybrid/planner/noop-planner.d.ts +1 -1
- package/dist/agent-runtime/modes/hybrid/planner/noop-planner.js +1 -1
- package/dist/agent-runtime/modes/hybrid/planner/prompts.d.ts +2 -0
- package/dist/agent-runtime/modes/hybrid/planner/prompts.js +8 -0
- package/dist/agent-runtime/modes/hybrid/planner/prompts.js.map +1 -1
- package/dist/agent-runtime/modes/orchestrator/index.d.ts +6 -0
- package/dist/agent-runtime/modes/orchestrator/index.js +4 -0
- package/dist/agent-runtime/modes/orchestrator/index.js.map +1 -1
- package/dist/agent-runtime/observation-mode.d.ts +2 -0
- package/dist/agent-runtime/observation-mode.js +2 -0
- package/dist/agent-runtime/observation-mode.js.map +1 -1
- package/dist/agent-runtime/plan-executor.d.ts +8 -2
- package/dist/agent-runtime/plan-executor.js +109 -14
- package/dist/agent-runtime/plan-executor.js.map +1 -1
- package/dist/agent-runtime/reflectors/policy.d.ts +2 -5
- package/dist/agent-runtime/reflectors/policy.js +6 -14
- package/dist/agent-runtime/reflectors/policy.js.map +1 -1
- package/dist/agent-runtime/reflectors/trajectory-reflector.d.ts +3 -4
- package/dist/agent-runtime/reflectors/trajectory-reflector.js +4 -4
- package/dist/agent-runtime/reflectors/trajectory-reflector.js.map +1 -1
- package/dist/agent-runtime/skills/replay.js +1 -0
- package/dist/agent-runtime/skills/replay.js.map +1 -1
- package/dist/agent-runtime/vlm.d.ts +2 -3
- package/dist/agent-runtime/vlm.js +2 -3
- package/dist/agent-runtime/vlm.js.map +1 -1
- package/dist/api.js +1 -0
- package/dist/api.js.map +1 -1
- package/dist/app/agent-host.js +3 -3
- package/dist/app/agent-host.js.map +1 -1
- package/dist/app/multi-device-host.d.ts +2 -2
- package/dist/app/multi-device-host.js +1 -1
- package/dist/app/session-manager.d.ts +20 -3
- package/dist/app/session-manager.js +33 -4
- package/dist/app/session-manager.js.map +1 -1
- package/dist/bootstrap.d.ts +2 -8
- package/dist/bootstrap.js +61 -103
- package/dist/bootstrap.js.map +1 -1
- package/dist/config/loader.d.ts +2 -9
- package/dist/config/loader.js +32 -34
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +5 -29
- package/dist/config/schema.js +8 -42
- package/dist/config/schema.js.map +1 -1
- package/dist/device/apps.js +51 -1
- package/dist/device/apps.js.map +1 -1
- package/dist/fleet/adapters/process/in-process-manager.d.ts +1 -1
- package/dist/fleet/adapters/process/node-process-manager.d.ts +7 -0
- package/dist/fleet/adapters/process/node-process-manager.js +29 -8
- package/dist/fleet/adapters/process/node-process-manager.js.map +1 -1
- package/dist/inbound/acp/handlers/session.d.ts +4 -1
- package/dist/inbound/acp/handlers/session.js +24 -10
- package/dist/inbound/acp/handlers/session.js.map +1 -1
- package/dist/inbound/cli/benchmark-command.d.ts +17 -0
- package/dist/inbound/cli/benchmark-command.js +158 -0
- package/dist/inbound/cli/benchmark-command.js.map +1 -0
- package/dist/inbound/cli/fleet-command.d.ts +12 -1
- package/dist/inbound/cli/fleet-command.js +38 -9
- package/dist/inbound/cli/fleet-command.js.map +1 -1
- package/dist/inbound/cli/main.d.ts +2 -6
- package/dist/inbound/cli/main.js +49 -33
- package/dist/inbound/cli/main.js.map +1 -1
- package/dist/inbound/cli/run-artifacts.d.ts +61 -0
- package/dist/inbound/cli/run-artifacts.js +247 -0
- package/dist/inbound/cli/run-artifacts.js.map +1 -0
- package/dist/inbound/cli/run-command.d.ts +23 -20
- package/dist/inbound/cli/run-command.js +157 -159
- package/dist/inbound/cli/run-command.js.map +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/plugins/http-debug/early-health.d.ts +11 -0
- package/dist/plugins/http-debug/early-health.js +51 -0
- package/dist/plugins/http-debug/early-health.js.map +1 -0
- package/dist/plugins/http-debug/index.js +2 -0
- package/dist/plugins/http-debug/index.js.map +1 -1
- package/dist/plugins/message-bus/inbound.js +7 -6
- package/dist/plugins/message-bus/inbound.js.map +1 -1
- package/dist/ports/agent-core.d.ts +13 -13
- package/dist/ports/agent-host.d.ts +4 -1
- package/package.json +4 -4
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import OpenAI from "openai";
|
|
2
|
+
import { normalizeOpenAIBaseUrl } from "../models/openai-base-url.js";
|
|
3
|
+
import { inferTargetApp } from "./app-card.js";
|
|
4
|
+
export class LLMSubgoalVerifier {
|
|
5
|
+
client;
|
|
6
|
+
modelName;
|
|
7
|
+
constructor(opts = {}) {
|
|
8
|
+
this.modelName = opts.modelName ?? process.env.ADVANCED_VERIFIER_MODEL ?? "glm-4-flash";
|
|
9
|
+
this.client = opts.client ?? new OpenAI({
|
|
10
|
+
baseURL: normalizeOpenAIBaseUrl(opts.baseUrl ?? process.env.ADVANCED_VERIFIER_BASE_URL ?? process.env.PLANNER_BASE_URL ?? "https://api.openai.com/v1"),
|
|
11
|
+
apiKey: opts.apiKey ??
|
|
12
|
+
process.env.ADVANCED_VERIFIER_API_KEY ??
|
|
13
|
+
process.env.PLANNER_API_KEY ??
|
|
14
|
+
process.env.GUI_AGENT_API_KEY ??
|
|
15
|
+
"EMPTY",
|
|
16
|
+
timeout: opts.timeoutMs ?? 30_000,
|
|
17
|
+
maxRetries: 1,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
async verify(ctx, signal) {
|
|
21
|
+
const startedAt = Date.now();
|
|
22
|
+
const deterministic = deterministicPostcondition(ctx);
|
|
23
|
+
if (deterministic) {
|
|
24
|
+
return {
|
|
25
|
+
...deterministic,
|
|
26
|
+
usage: { inputTokens: 0, outputTokens: 0, durationMs: Date.now() - startedAt },
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
const response = await this.client.chat.completions.create({
|
|
31
|
+
model: this.modelName,
|
|
32
|
+
temperature: 0,
|
|
33
|
+
max_tokens: 220,
|
|
34
|
+
response_format: { type: "json_object" },
|
|
35
|
+
messages: [
|
|
36
|
+
{ role: "system", content: SYSTEM_PROMPT },
|
|
37
|
+
{ role: "user", content: renderVerificationPrompt(ctx) },
|
|
38
|
+
],
|
|
39
|
+
}, { signal });
|
|
40
|
+
const raw = response.choices[0]?.message?.content ?? "";
|
|
41
|
+
const parsed = parseVerification(raw);
|
|
42
|
+
return {
|
|
43
|
+
...parsed,
|
|
44
|
+
usage: {
|
|
45
|
+
inputTokens: response.usage?.prompt_tokens ?? 0,
|
|
46
|
+
outputTokens: response.usage?.completion_tokens ?? 0,
|
|
47
|
+
durationMs: Date.now() - startedAt,
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
// Fail open: Advanced supervision improves reliability but must not make
|
|
53
|
+
// a healthy actor unavailable when the secondary model has an outage.
|
|
54
|
+
return {
|
|
55
|
+
verdict: "achieved",
|
|
56
|
+
reason: `verifier unavailable; accepting actor result: ${errorMessage(error)}`,
|
|
57
|
+
usage: { inputTokens: 0, outputTokens: 0, durationMs: Date.now() - startedAt },
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const SYSTEM_PROMPT = `You supervise a mobile GUI executor. Decide whether the
|
|
63
|
+
CURRENT SUBGOAL is visibly achieved from the latest UI evidence. The executor's
|
|
64
|
+
own success claim is not proof. Be conservative but practical.
|
|
65
|
+
|
|
66
|
+
Return strict JSON:
|
|
67
|
+
{"verdict":"achieved|not_achieved|task_complete","reason":"<=180 chars","guidance":"optional concrete recovery"}
|
|
68
|
+
|
|
69
|
+
Rules:
|
|
70
|
+
- achieved: the expected outcome is supported by current app/UI evidence.
|
|
71
|
+
- not_achieved: wrong app/page, blocking dialog, stale/no-op state, missing
|
|
72
|
+
expected result, or contradictory evidence. Give one concrete recovery hint.
|
|
73
|
+
- task_complete: the root user goal, not merely this subgoal, is visibly done.
|
|
74
|
+
- For the final plan step, check every explicit terminal condition in the root
|
|
75
|
+
goal (for example returning to the home screen), not only the executor text.
|
|
76
|
+
- Do not reject solely because evidence is sparse after a harmless navigation
|
|
77
|
+
action. Do reject irreversible actions that lack a visible success signal.`;
|
|
78
|
+
function renderVerificationPrompt(ctx) {
|
|
79
|
+
const currentApp = typeof ctx.observation?.extra?.currentApp === "string"
|
|
80
|
+
? ctx.observation.extra.currentApp
|
|
81
|
+
: "unknown";
|
|
82
|
+
const recent = ctx.recentHistory.slice(-6).map((entry) => ({
|
|
83
|
+
step: entry.stepIdx,
|
|
84
|
+
action: entry.action?.type ?? null,
|
|
85
|
+
outcome: entry.actionResult ?? null,
|
|
86
|
+
screen: truncate(entry.observationSummary, 220),
|
|
87
|
+
error: entry.actErrorMessage ?? null,
|
|
88
|
+
}));
|
|
89
|
+
return JSON.stringify({
|
|
90
|
+
rootGoal: ctx.goal,
|
|
91
|
+
currentSubgoal: ctx.step.description,
|
|
92
|
+
expectedOutcome: ctx.step.expectedOutcome ?? "unspecified",
|
|
93
|
+
currentApp,
|
|
94
|
+
uiDump: truncate(ctx.observation?.uiDump ?? "", 5000),
|
|
95
|
+
executorMessage: truncate(ctx.executorMessage, 500),
|
|
96
|
+
recentSteps: recent,
|
|
97
|
+
appKnowledge: truncate(ctx.advancedKnowledge ?? "", 2400),
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
function parseVerification(raw) {
|
|
101
|
+
try {
|
|
102
|
+
const parsed = JSON.parse(raw);
|
|
103
|
+
const verdict = parsed.verdict;
|
|
104
|
+
if (verdict !== "achieved" && verdict !== "not_achieved" && verdict !== "task_complete") {
|
|
105
|
+
throw new Error("invalid verdict");
|
|
106
|
+
}
|
|
107
|
+
return {
|
|
108
|
+
verdict,
|
|
109
|
+
reason: truncate(typeof parsed.reason === "string" ? parsed.reason : verdict, 180),
|
|
110
|
+
...(typeof parsed.guidance === "string" && parsed.guidance.trim()
|
|
111
|
+
? { guidance: truncate(parsed.guidance, 240) }
|
|
112
|
+
: {}),
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
catch {
|
|
116
|
+
return { verdict: "achieved", reason: "verifier returned malformed output; accepting actor result" };
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Reject post-conditions that can be proved false without asking a model.
|
|
121
|
+
* This prevents a persuasive executor summary from overriding authoritative
|
|
122
|
+
* runtime state. Keep this deliberately narrow: uncertain states still go to
|
|
123
|
+
* the semantic verifier.
|
|
124
|
+
*/
|
|
125
|
+
function deterministicPostcondition(ctx) {
|
|
126
|
+
const currentApp = typeof ctx.observation?.extra?.currentApp === "string"
|
|
127
|
+
? ctx.observation.extra.currentApp.trim()
|
|
128
|
+
: "";
|
|
129
|
+
if (!currentApp)
|
|
130
|
+
return undefined;
|
|
131
|
+
const lastStep = ctx.plan.steps.at(-1);
|
|
132
|
+
const isFinalStep = lastStep?.idx === ctx.step.idx;
|
|
133
|
+
const stepRequirement = `${ctx.step.description} ${ctx.step.expectedOutcome ?? ""}`;
|
|
134
|
+
const rootTerminalRequirement = isFinalStep ? ctx.goal : "";
|
|
135
|
+
const requiresHome = asksForHomeScreen(`${stepRequirement} ${rootTerminalRequirement}`);
|
|
136
|
+
if (requiresHome) {
|
|
137
|
+
if (!isHomeApp(currentApp)) {
|
|
138
|
+
return {
|
|
139
|
+
verdict: "not_achieved",
|
|
140
|
+
reason: `terminal state requires the home screen, but current app is ${currentApp}`,
|
|
141
|
+
guidance: "Press Home, then verify that the launcher is foreground before finishing.",
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
return {
|
|
145
|
+
verdict: isFinalStep ? "task_complete" : "achieved",
|
|
146
|
+
reason: `launcher is foreground (${currentApp})`,
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const expectedApp = inferTargetApp(stepRequirement);
|
|
150
|
+
if (expectedApp) {
|
|
151
|
+
if (!isExpectedApp(currentApp, expectedApp)) {
|
|
152
|
+
return {
|
|
153
|
+
verdict: "not_achieved",
|
|
154
|
+
reason: `subgoal expects ${expectedApp.displayName}, but current app is ${currentApp}`,
|
|
155
|
+
guidance: `Open ${expectedApp.displayName} and verify it is foreground before finishing.`,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
if (isAppLaunchOnly(stepRequirement)) {
|
|
159
|
+
return {
|
|
160
|
+
verdict: "achieved",
|
|
161
|
+
reason: `${expectedApp.displayName} is foreground (${currentApp})`,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return undefined;
|
|
166
|
+
}
|
|
167
|
+
function isAppLaunchOnly(text) {
|
|
168
|
+
const opensApp = /(?:打开|启动|进入)(?:\S{0,12})(?:应用|app)?|\b(?:open|launch|start)\b/i.test(text);
|
|
169
|
+
const hasAdditionalWork = /搜索|输入|读取|说明|点击|返回|发布|发送|关注|点赞|评论|search|type|read|describe|tap|click|return|post|send|follow|like|comment/i.test(text);
|
|
170
|
+
return opensApp && !hasAdditionalWork;
|
|
171
|
+
}
|
|
172
|
+
function asksForHomeScreen(text) {
|
|
173
|
+
return /(?:返回|回到|进入|显示)(?:手机)?(?:桌面|主屏幕)|return\s+to\s+(?:the\s+)?home(?:\s+screen)?|go\s+home/i.test(text);
|
|
174
|
+
}
|
|
175
|
+
function isHomeApp(currentApp) {
|
|
176
|
+
return /(?:^|[./])(?:launcher\d*|home)(?:$|[./])|system\s+home|com\.miui\.home|com\.oppo\.launcher|com\.android\.launcher|com\.google\.android\.apps\.nexuslauncher|com\.sec\.android\.app\.launcher/i.test(currentApp);
|
|
177
|
+
}
|
|
178
|
+
function isExpectedApp(currentApp, expected) {
|
|
179
|
+
const normalized = currentApp.toLocaleLowerCase();
|
|
180
|
+
return [expected.packageName, expected.displayName].some((value) => normalized.includes(value.toLocaleLowerCase()));
|
|
181
|
+
}
|
|
182
|
+
function truncate(value, max) {
|
|
183
|
+
if (value.length <= max)
|
|
184
|
+
return value;
|
|
185
|
+
return `${value.slice(0, max - 1)}…`;
|
|
186
|
+
}
|
|
187
|
+
function errorMessage(error) {
|
|
188
|
+
return error instanceof Error ? error.message : String(error);
|
|
189
|
+
}
|
|
190
|
+
//# sourceMappingURL=subgoal-verifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgoal-verifier.js","sourceRoot":"","sources":["../../../src/agent-runtime/advanced/subgoal-verifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface CompletedSubgoal {
|
|
2
|
+
description: string;
|
|
3
|
+
expectedOutcome?: string;
|
|
4
|
+
evidence?: string;
|
|
5
|
+
}
|
|
6
|
+
export interface RecoveryRecord {
|
|
7
|
+
description: string;
|
|
8
|
+
reason: string;
|
|
9
|
+
guidance?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Compact cross-subgoal state for long-horizon Advanced runs. */
|
|
12
|
+
export declare class AdvancedTaskState {
|
|
13
|
+
private readonly completed;
|
|
14
|
+
private readonly recoveries;
|
|
15
|
+
recordCompleted(entry: CompletedSubgoal): void;
|
|
16
|
+
recordRecovery(entry: RecoveryRecord): void;
|
|
17
|
+
render(notes?: readonly string[]): string;
|
|
18
|
+
/** Preserve useful results produced by earlier subgoals in the final reply. */
|
|
19
|
+
renderFinalAnswer(fallback: string): string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/** Compact cross-subgoal state for long-horizon Advanced runs. */
|
|
2
|
+
export class AdvancedTaskState {
|
|
3
|
+
completed = [];
|
|
4
|
+
recoveries = [];
|
|
5
|
+
recordCompleted(entry) {
|
|
6
|
+
if (this.completed.some((item) => item.description === entry.description))
|
|
7
|
+
return;
|
|
8
|
+
this.completed.push(entry);
|
|
9
|
+
}
|
|
10
|
+
recordRecovery(entry) {
|
|
11
|
+
this.recoveries.push(entry);
|
|
12
|
+
if (this.recoveries.length > 6)
|
|
13
|
+
this.recoveries.shift();
|
|
14
|
+
}
|
|
15
|
+
render(notes = []) {
|
|
16
|
+
const lines = ["ADVANCED TASK STATE (authoritative, compact)"];
|
|
17
|
+
if (this.completed.length === 0) {
|
|
18
|
+
lines.push("Completed subgoals: none");
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
lines.push("Completed subgoals:");
|
|
22
|
+
for (const item of this.completed.slice(-8)) {
|
|
23
|
+
const outcome = item.expectedOutcome ? `; expected=${item.expectedOutcome}` : "";
|
|
24
|
+
const evidence = item.evidence ? `; evidence=${truncate(item.evidence, 160)}` : "";
|
|
25
|
+
lines.push(`- ${item.description}${outcome}${evidence}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
if (notes.length > 0) {
|
|
29
|
+
lines.push("Facts and notes:");
|
|
30
|
+
for (const note of notes.slice(-8))
|
|
31
|
+
lines.push(`- ${truncate(note, 200)}`);
|
|
32
|
+
}
|
|
33
|
+
if (this.recoveries.length > 0) {
|
|
34
|
+
lines.push("Recent rejected paths (do not repeat unchanged):");
|
|
35
|
+
for (const item of this.recoveries.slice(-4)) {
|
|
36
|
+
lines.push(`- ${item.description}: ${truncate(item.reason, 180)}` +
|
|
37
|
+
`${item.guidance ? `; next=${truncate(item.guidance, 180)}` : ""}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return lines.join("\n");
|
|
41
|
+
}
|
|
42
|
+
/** Preserve useful results produced by earlier subgoals in the final reply. */
|
|
43
|
+
renderFinalAnswer(fallback) {
|
|
44
|
+
if (this.completed.length === 0)
|
|
45
|
+
return fallback;
|
|
46
|
+
return this.completed
|
|
47
|
+
.slice(-8)
|
|
48
|
+
.map((item) => {
|
|
49
|
+
const evidence = item.evidence?.trim();
|
|
50
|
+
return evidence
|
|
51
|
+
? `已完成:${item.description}\n${truncate(evidence, 500)}`
|
|
52
|
+
: `已完成:${item.description}`;
|
|
53
|
+
})
|
|
54
|
+
.join("\n\n");
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function truncate(value, max) {
|
|
58
|
+
return value.length <= max ? value : `${value.slice(0, max - 1)}…`;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=task-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task-state.js","sourceRoot":"","sources":["../../../src/agent-runtime/advanced/task-state.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,19 +2,8 @@
|
|
|
2
2
|
* agent-runtime/agent-runner — unified, top-level entry point that the
|
|
3
3
|
* CLI, the ACP session manager, and the HTTP debug routes all share.
|
|
4
4
|
*
|
|
5
|
-
* It implements the
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
* - With a `planner` and `mode: "always"` → straight Plan-Act
|
|
9
|
-
* (`PlanExecutor` from step 0).
|
|
10
|
-
* - With a `planner` and `mode: "auto"` (default):
|
|
11
|
-
* * Long task (≥ `taskMinChars`, default 30) → Plan-Act
|
|
12
|
-
* * Short task → ReAct (`AgentLoop`)
|
|
13
|
-
* with a mid-run **replan fallback**: when the inner loop
|
|
14
|
-
* exhausts an early step budget (`maxSteps * stepsRatioToReplan`,
|
|
15
|
-
* default 1/3) without finishing, we splice in a PlanExecutor
|
|
16
|
-
* seeded with the captured history for the remaining budget.
|
|
17
|
-
* - Without a `planner` (or `mode: "never"`) → AgentLoop only.
|
|
5
|
+
* It implements the internal planner policy selected by product execution
|
|
6
|
+
* mode: `always` starts with Plan-Act and `never` runs pure ReAct.
|
|
18
7
|
*
|
|
19
8
|
* The runner returns a uniform `AgentRunnerResult` so callers don't need
|
|
20
9
|
* to discriminate between the two execution paths.
|
|
@@ -27,7 +16,10 @@ import type { IPlanner } from "./modes/hybrid/planner/base.js";
|
|
|
27
16
|
import type { ObservationMode } from "./observation-mode.js";
|
|
28
17
|
import { type ReflectorPolicy } from "./reflectors/policy.js";
|
|
29
18
|
import { type EmbeddingProvider, type SkillCacheStore, type SkillEvolverOptions, type SkillMatcherOptions, type SkillMatchOutcome, type SkillReplayResult } from "./skills/index.js";
|
|
30
|
-
|
|
19
|
+
import type { ISubgoalVerifier } from "./advanced/subgoal-verifier.js";
|
|
20
|
+
export type PlannerPolicy = "always" | "never";
|
|
21
|
+
/** @deprecated Use product `executionMode`; retained for source compatibility. */
|
|
22
|
+
export type AgentPlanMode = PlannerPolicy | "auto";
|
|
31
23
|
export interface AgentRunnerOptions {
|
|
32
24
|
task: string;
|
|
33
25
|
env: Observation["env"];
|
|
@@ -37,16 +29,10 @@ export interface AgentRunnerOptions {
|
|
|
37
29
|
observationMode?: ObservationMode;
|
|
38
30
|
/** Optional planner. When omitted the runner is pure ReAct. */
|
|
39
31
|
planner?: IPlanner;
|
|
40
|
-
/**
|
|
32
|
+
/** Internal planner policy derived from the public execution mode. */
|
|
33
|
+
plannerPolicy?: PlannerPolicy;
|
|
34
|
+
/** @deprecated Use `plannerPolicy` through the product execution-mode mapping. */
|
|
41
35
|
mode?: AgentPlanMode;
|
|
42
|
-
/** Minimum task length (in chars) at which `auto` mode escalates to Plan-Act. Defaults to 30. */
|
|
43
|
-
taskMinChars?: number;
|
|
44
|
-
/**
|
|
45
|
-
* In short-task `auto` runs, fraction of `maxSteps` to spend on the
|
|
46
|
-
* pure ReAct phase before triggering the replan-fallback. Defaults
|
|
47
|
-
* to 1/3.
|
|
48
|
-
*/
|
|
49
|
-
stepsRatioToReplan?: number;
|
|
50
36
|
/** Per-call max steps. Defaults to 30. */
|
|
51
37
|
maxSteps?: number;
|
|
52
38
|
/** Wall-clock timeout. Defaults to 5 minutes. */
|
|
@@ -63,8 +49,8 @@ export interface AgentRunnerOptions {
|
|
|
63
49
|
* Phase 1.4 / 2.4 reflector configuration. When omitted the runner
|
|
64
50
|
* resolves a policy from `process.env` (`ACTION_REFLECTOR=…`, etc.)
|
|
65
51
|
* via {@link buildReflectorPolicyFromEnv}. Defaults: trajectory
|
|
66
|
-
* reflector `
|
|
67
|
-
*
|
|
52
|
+
* reflector `off`, action reflector `off`, note taker `off`.
|
|
53
|
+
* See `agent-runtime/reflectors/policy.ts` for
|
|
68
54
|
* the env-var matrix.
|
|
69
55
|
*/
|
|
70
56
|
reflectorPolicy?: ReflectorPolicy;
|
|
@@ -76,6 +62,10 @@ export interface AgentRunnerOptions {
|
|
|
76
62
|
* omitted (legacy behaviour preserved).
|
|
77
63
|
*/
|
|
78
64
|
skillMemory?: SkillMemoryConfig;
|
|
65
|
+
/** Advanced-only App Card, skill, and recovery guidance. */
|
|
66
|
+
advancedKnowledge?: string;
|
|
67
|
+
/** Advanced-only independent subgoal supervision. */
|
|
68
|
+
subgoalVerifier?: ISubgoalVerifier;
|
|
79
69
|
}
|
|
80
70
|
export interface SkillMemoryConfig {
|
|
81
71
|
/** Persistent or in-memory store. Required to enable the feature. */
|
|
@@ -109,7 +99,7 @@ export interface AgentRunnerResult {
|
|
|
109
99
|
usage: ModelUsage;
|
|
110
100
|
history: StepHistory[];
|
|
111
101
|
/** Which top-level path the runner took. */
|
|
112
|
-
mode: "react" | "plan" | "
|
|
102
|
+
mode: "react" | "plan" | "skill_replay";
|
|
113
103
|
terminator: AgentLoopTerminator;
|
|
114
104
|
cancelled: boolean;
|
|
115
105
|
/** Plan-Act metrics; populated only when `mode !== "react"`. */
|
|
@@ -149,6 +139,5 @@ export declare class AgentRunner {
|
|
|
149
139
|
private runWithoutSkillMemory;
|
|
150
140
|
private runReact;
|
|
151
141
|
private runPlan;
|
|
152
|
-
private runReactWithReplanFallback;
|
|
153
142
|
private spawnLoop;
|
|
154
143
|
}
|
|
@@ -2,19 +2,8 @@
|
|
|
2
2
|
* agent-runtime/agent-runner — unified, top-level entry point that the
|
|
3
3
|
* CLI, the ACP session manager, and the HTTP debug routes all share.
|
|
4
4
|
*
|
|
5
|
-
* It implements the
|
|
6
|
-
* `
|
|
7
|
-
*
|
|
8
|
-
* - With a `planner` and `mode: "always"` → straight Plan-Act
|
|
9
|
-
* (`PlanExecutor` from step 0).
|
|
10
|
-
* - With a `planner` and `mode: "auto"` (default):
|
|
11
|
-
* * Long task (≥ `taskMinChars`, default 30) → Plan-Act
|
|
12
|
-
* * Short task → ReAct (`AgentLoop`)
|
|
13
|
-
* with a mid-run **replan fallback**: when the inner loop
|
|
14
|
-
* exhausts an early step budget (`maxSteps * stepsRatioToReplan`,
|
|
15
|
-
* default 1/3) without finishing, we splice in a PlanExecutor
|
|
16
|
-
* seeded with the captured history for the remaining budget.
|
|
17
|
-
* - Without a `planner` (or `mode: "never"`) → AgentLoop only.
|
|
5
|
+
* It implements the internal planner policy selected by product execution
|
|
6
|
+
* mode: `always` starts with Plan-Act and `never` runs pure ReAct.
|
|
18
7
|
*
|
|
19
8
|
* The runner returns a uniform `AgentRunnerResult` so callers don't need
|
|
20
9
|
* to discriminate between the two execution paths.
|
|
@@ -25,17 +14,10 @@ import { PlanExecutor, } from "./plan-executor.js";
|
|
|
25
14
|
import { HierarchicalReflector } from "./reflection.js";
|
|
26
15
|
import { buildReflectorPolicyFromEnv, resolveActionReflector, resolveTrajectoryReflector, } from "./reflectors/policy.js";
|
|
27
16
|
import { evolveSkill, matchSkill, replaySkill, } from "./skills/index.js";
|
|
28
|
-
const DEFAULT_TASK_MIN_CHARS = 30;
|
|
29
|
-
const DEFAULT_STEPS_RATIO_TO_REPLAN = 1 / 3;
|
|
30
17
|
const DEFAULT_MAX_STEPS = 30;
|
|
31
18
|
const DEFAULT_TIMEOUT_MS = 5 * 60 * 1000;
|
|
32
19
|
const DEFAULT_MAX_REPLANS = 2;
|
|
33
20
|
const SUCCESS_TERMINATORS = new Set(["done"]);
|
|
34
|
-
const FAIL_FAST_TERMINATORS = new Set([
|
|
35
|
-
"fail",
|
|
36
|
-
"call_for_user",
|
|
37
|
-
"cancelled",
|
|
38
|
-
]);
|
|
39
21
|
export class AgentRunner {
|
|
40
22
|
opts;
|
|
41
23
|
reflector;
|
|
@@ -167,36 +149,18 @@ export class AgentRunner {
|
|
|
167
149
|
});
|
|
168
150
|
}
|
|
169
151
|
async runWithoutSkillMemory() {
|
|
170
|
-
const
|
|
152
|
+
const plannerPolicy = this.opts.plannerPolicy ?? legacyPlannerPolicy(this.opts.mode, this.opts.planner, this.opts.task);
|
|
171
153
|
const maxSteps = this.opts.maxSteps ?? DEFAULT_MAX_STEPS;
|
|
172
154
|
const timeoutMs = this.opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
173
|
-
const taskMinChars = this.opts.taskMinChars ?? DEFAULT_TASK_MIN_CHARS;
|
|
174
|
-
const ratio = this.opts.stepsRatioToReplan ?? DEFAULT_STEPS_RATIO_TO_REPLAN;
|
|
175
155
|
const maxReplans = this.opts.maxReplans ?? DEFAULT_MAX_REPLANS;
|
|
176
156
|
const planner = this.opts.planner;
|
|
177
|
-
|
|
178
|
-
// ── Resolve effective execution mode ───────────────────────────────
|
|
179
|
-
if (mode === "always") {
|
|
157
|
+
if (plannerPolicy === "always") {
|
|
180
158
|
if (!planner) {
|
|
181
|
-
throw new Error(
|
|
159
|
+
throw new Error('AgentRunner: plannerPolicy="always" requires a planner');
|
|
182
160
|
}
|
|
183
161
|
return this.runPlan({ maxSteps, timeoutMs, maxReplans, planner });
|
|
184
162
|
}
|
|
185
|
-
|
|
186
|
-
return this.runReact({ maxSteps, timeoutMs });
|
|
187
|
-
}
|
|
188
|
-
// mode === "auto"
|
|
189
|
-
if (taskLen >= taskMinChars) {
|
|
190
|
-
return this.runPlan({ maxSteps, timeoutMs, maxReplans, planner });
|
|
191
|
-
}
|
|
192
|
-
// Short task — ReAct first, with mid-run replan fallback.
|
|
193
|
-
return this.runReactWithReplanFallback({
|
|
194
|
-
maxSteps,
|
|
195
|
-
timeoutMs,
|
|
196
|
-
maxReplans,
|
|
197
|
-
planner,
|
|
198
|
-
ratio,
|
|
199
|
-
});
|
|
163
|
+
return this.runReact({ maxSteps, timeoutMs });
|
|
200
164
|
}
|
|
201
165
|
/* ───────────────────────────── pure ReAct ────────────────────────── */
|
|
202
166
|
async runReact(args) {
|
|
@@ -232,96 +196,11 @@ export class AgentRunner {
|
|
|
232
196
|
signal: this.opts.signal,
|
|
233
197
|
hooks: this.opts.hooks,
|
|
234
198
|
reflector: this.reflector,
|
|
199
|
+
advancedKnowledge: this.opts.advancedKnowledge,
|
|
200
|
+
subgoalVerifier: this.opts.subgoalVerifier,
|
|
235
201
|
});
|
|
236
202
|
const r = await exec.run();
|
|
237
|
-
return convertPlanResult(r
|
|
238
|
-
}
|
|
239
|
-
/* ────────────────────── ReAct + fallback to Plan ─────────────────── */
|
|
240
|
-
async runReactWithReplanFallback(args) {
|
|
241
|
-
const reactBudget = Math.max(1, Math.ceil(args.maxSteps * args.ratio));
|
|
242
|
-
const start = Date.now();
|
|
243
|
-
const reactResult = await this.spawnLoop({
|
|
244
|
-
task: this.opts.task,
|
|
245
|
-
maxSteps: reactBudget,
|
|
246
|
-
timeoutMs: args.timeoutMs,
|
|
247
|
-
});
|
|
248
|
-
if (SUCCESS_TERMINATORS.has(reactResult.terminator)) {
|
|
249
|
-
return {
|
|
250
|
-
ok: true,
|
|
251
|
-
finalText: reactResult.finalText,
|
|
252
|
-
steps: reactResult.steps,
|
|
253
|
-
usage: reactResult.usage,
|
|
254
|
-
history: reactResult.history,
|
|
255
|
-
mode: "react",
|
|
256
|
-
terminator: reactResult.terminator,
|
|
257
|
-
cancelled: reactResult.cancelled,
|
|
258
|
-
notes: reactResult.notes,
|
|
259
|
-
};
|
|
260
|
-
}
|
|
261
|
-
if (FAIL_FAST_TERMINATORS.has(reactResult.terminator)) {
|
|
262
|
-
// The model explicitly gave up / requested takeover / was cancelled
|
|
263
|
-
// — the planner can't help, surface it directly.
|
|
264
|
-
return {
|
|
265
|
-
ok: false,
|
|
266
|
-
finalText: reactResult.finalText,
|
|
267
|
-
steps: reactResult.steps,
|
|
268
|
-
usage: reactResult.usage,
|
|
269
|
-
history: reactResult.history,
|
|
270
|
-
mode: "react",
|
|
271
|
-
terminator: reactResult.terminator,
|
|
272
|
-
cancelled: reactResult.cancelled,
|
|
273
|
-
notes: reactResult.notes,
|
|
274
|
-
};
|
|
275
|
-
}
|
|
276
|
-
// Step budget / timeout / reflection veto / soft error — escalate to
|
|
277
|
-
// Plan-Act with the remaining budget.
|
|
278
|
-
const elapsed = Date.now() - start;
|
|
279
|
-
const remainingTimeMs = Math.max(1000, args.timeoutMs - elapsed);
|
|
280
|
-
const remainingSteps = Math.max(1, args.maxSteps - reactResult.steps);
|
|
281
|
-
// Seed: pre-existing history isn't replayable through PlanExecutor's
|
|
282
|
-
// sub-loops (each AgentLoop owns its own history), so we surface the
|
|
283
|
-
// ReAct-phase totals through the result mirroring instead.
|
|
284
|
-
const exec = new PlanExecutor({
|
|
285
|
-
planner: args.planner,
|
|
286
|
-
adapter: this.opts.adapter,
|
|
287
|
-
mcp: this.opts.mcp,
|
|
288
|
-
goal: this.opts.task,
|
|
289
|
-
env: this.opts.env,
|
|
290
|
-
observationMode: this.opts.observationMode,
|
|
291
|
-
maxSteps: remainingSteps,
|
|
292
|
-
timeoutMs: remainingTimeMs,
|
|
293
|
-
maxReplans: args.maxReplans,
|
|
294
|
-
signal: this.opts.signal,
|
|
295
|
-
hooks: this.opts.hooks,
|
|
296
|
-
reflector: this.reflector,
|
|
297
|
-
});
|
|
298
|
-
const r = await exec.run();
|
|
299
|
-
// Aggregate.
|
|
300
|
-
const usage = {
|
|
301
|
-
inputTokens: reactResult.usage.inputTokens + r.usage.inputTokens,
|
|
302
|
-
outputTokens: reactResult.usage.outputTokens + r.usage.outputTokens,
|
|
303
|
-
};
|
|
304
|
-
if (reactResult.usage.cachedInputTokens || r.usage.cachedInputTokens) {
|
|
305
|
-
usage.cachedInputTokens =
|
|
306
|
-
(reactResult.usage.cachedInputTokens ?? 0) + (r.usage.cachedInputTokens ?? 0);
|
|
307
|
-
}
|
|
308
|
-
if (reactResult.usage.costUsd || r.usage.costUsd) {
|
|
309
|
-
usage.costUsd = (reactResult.usage.costUsd ?? 0) + (r.usage.costUsd ?? 0);
|
|
310
|
-
}
|
|
311
|
-
return {
|
|
312
|
-
ok: r.ok,
|
|
313
|
-
finalText: r.finalText || reactResult.finalText,
|
|
314
|
-
steps: reactResult.steps + r.steps,
|
|
315
|
-
usage,
|
|
316
|
-
history: [...reactResult.history, ...r.history],
|
|
317
|
-
mode: "react+replan",
|
|
318
|
-
terminator: r.terminator,
|
|
319
|
-
cancelled: r.cancelled,
|
|
320
|
-
plansEmitted: r.plansEmitted,
|
|
321
|
-
replans: r.replans,
|
|
322
|
-
reactFallbackUsed: r.reactFallbackUsed,
|
|
323
|
-
notes: [...reactResult.notes, ...r.notes],
|
|
324
|
-
};
|
|
203
|
+
return convertPlanResult(r);
|
|
325
204
|
}
|
|
326
205
|
/* ──────────────────────────── helpers ────────────────────────────── */
|
|
327
206
|
spawnLoop(args) {
|
|
@@ -340,14 +219,22 @@ export class AgentRunner {
|
|
|
340
219
|
}).run();
|
|
341
220
|
}
|
|
342
221
|
}
|
|
343
|
-
function
|
|
222
|
+
function legacyPlannerPolicy(mode, planner, task) {
|
|
223
|
+
if (mode === "always")
|
|
224
|
+
return "always";
|
|
225
|
+
if (mode === "never" || !planner)
|
|
226
|
+
return "never";
|
|
227
|
+
// Historical `auto` planned long tasks and ran short tasks as ReAct.
|
|
228
|
+
return task.length >= 30 ? "always" : "never";
|
|
229
|
+
}
|
|
230
|
+
function convertPlanResult(r) {
|
|
344
231
|
return {
|
|
345
232
|
ok: r.ok,
|
|
346
233
|
finalText: r.finalText,
|
|
347
234
|
steps: r.steps,
|
|
348
235
|
usage: r.usage,
|
|
349
236
|
history: r.history,
|
|
350
|
-
mode,
|
|
237
|
+
mode: "plan",
|
|
351
238
|
terminator: r.terminator,
|
|
352
239
|
cancelled: r.cancelled,
|
|
353
240
|
plansEmitted: r.plansEmitted,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/agent-runtime/agent-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-runner.js","sourceRoot":"","sources":["../../src/agent-runtime/agent-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,8 @@ export interface AgentRunHooks {
|
|
|
41
41
|
onText?: (delta: string) => void | Promise<void>;
|
|
42
42
|
/** Historical name for planner narration; surfaced as visible prose. */
|
|
43
43
|
onReasoning?: (delta: string) => void | Promise<void>;
|
|
44
|
+
/** Fired after observation capture and before that frame is sent to the model. */
|
|
45
|
+
onObservation?: (event: AgentObservationEvent) => void | Promise<void>;
|
|
44
46
|
/** Fired exactly once per step, after the action has been parsed. */
|
|
45
47
|
onStep?: (step: AgentStepEvent) => void | Promise<void>;
|
|
46
48
|
/** Fired before the action is dispatched to MCP `/act`. */
|
|
@@ -48,6 +50,12 @@ export interface AgentRunHooks {
|
|
|
48
50
|
/** Fired on every error, fatal or recoverable. */
|
|
49
51
|
onError?: (err: AgentErrorEvent) => void | Promise<void>;
|
|
50
52
|
}
|
|
53
|
+
export interface AgentObservationEvent {
|
|
54
|
+
/** 1-based step index within the active loop. */
|
|
55
|
+
index: number;
|
|
56
|
+
/** The exact observation object supplied to the model adapter. */
|
|
57
|
+
observation: Observation;
|
|
58
|
+
}
|
|
51
59
|
export interface AgentStepEvent {
|
|
52
60
|
/** 1-based step index. */
|
|
53
61
|
index: number;
|