agentpage 0.0.13 → 0.0.16

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 CHANGED
@@ -112,6 +112,13 @@ src/
112
112
 
113
113
  AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可执行动作。
114
114
 
115
+ 可把本轮决策写成一个最小公式:
116
+
117
+ - 输入:`当前快照 S` + `当前任务描述 R`
118
+ - 输出:`当前可执行任务批次 T`(仅包含快照里可见且可操作的目标)
119
+
120
+ 也就是:`S + R -> T`
121
+
115
122
  快照包含:
116
123
  - 元素标签与关键信息
117
124
  - hash selector(如 `#a1b2c`)
@@ -121,10 +128,19 @@ AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可
121
128
 
122
129
  用户任务会被分解成子任务,按轮次逐步“吃掉”:
123
130
 
124
- - 轮次 N:做当前快照可满足的动作
125
- - 工具执行后刷新快照
126
- - 轮次 N+1:继续做剩余子任务
127
- - 全部完成后返回总结文本
131
+ - 轮次 N:在快照 `S_n` 上执行当前可做任务 `T_n`
132
+ - 执行后默认先视为成功,并从当前任务 `R_n` 中剔除 `T_n`
133
+ - 得到下一轮任务 `R_(n+1)`,再配合新快照进入下一轮
134
+ - 全部剔除完成后结束
135
+
136
+ 任务推进可写成:
137
+
138
+ - 输入:`当前任务 R_n` + `本轮执行 T_n` + `已执行历史 H_n`
139
+ - 输出:`下一轮任务 R_(n+1)`
140
+
141
+ 也就是:`R_n + T_n + H_n -> R_(n+1)`
142
+
143
+ 其中 `R_(n+1)` 就是下一次发给模型的核心输入之一。
128
144
 
129
145
  新增(渐进式协议):
130
146
  - 每轮都会显式携带 `Current remaining instruction`(当前剩余文本)
@@ -132,6 +148,7 @@ AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可
132
148
  - 模型可在文本中返回:
133
149
  - `REMAINING: <剩余内容>`:表示还有任务要继续
134
150
  - `REMAINING: DONE`:表示剩余任务已空
151
+ - 注意:模型在 `tool_calls` 轮可能返回空 `content`;这不代表任务结束。
135
152
 
136
153
  ### 3) 批量但不跨变更链式执行
137
154
 
@@ -144,6 +161,159 @@ AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可
144
161
 
145
162
  ---
146
163
 
164
+ ## 完整对话流程(执行版)
165
+
166
+ > 目标:每轮都基于“当前快照 + 当前任务”推进,避免 `page_info` 空转。
167
+
168
+ ### 0) chat 触发(前端)
169
+
170
+ 当调用 `WebAgent.chat()` 时,前端会先做一件事:
171
+
172
+ 1. 立即生成首轮快照 `S0`(浏览器端自动完成,不依赖 AI 请求)
173
+ 2. 将 `S0` 注入到 system prompt
174
+ 3. 将 `S0` 作为 `initialSnapshot` 传入 loop
175
+
176
+ 这保证了首轮就是“有快照可执行”的状态。
177
+
178
+ ### 1) 每轮输入(给模型)
179
+
180
+ 每轮构建消息时,核心输入固定为:
181
+
182
+ - `Current remaining instruction`(当前剩余任务)
183
+ - `Previous round planned task array`(上一轮已执行任务)
184
+ - `Previous round model output (normalized)`(上一轮模型输出归一化摘要)
185
+ - `Latest DOM snapshot`(当前快照)
186
+
187
+ 说明:
188
+ - Round 0 会携带原始任务文本作为起点;
189
+ - Round 1+ 不再重复注入原始 userMessage,避免模型“回头重做”。
190
+
191
+ ### 2) 每轮输出(模型返回)
192
+
193
+ 模型应返回:
194
+
195
+ - 本轮工具调用批次(能批量就批量)
196
+ - 一行剩余任务协议:
197
+ - `REMAINING: <new remaining instruction>`
198
+ - 或 `REMAINING: DONE`
199
+
200
+ 实现细节:
201
+ - 若该轮返回 `tool_calls` 且 `content` 为空,loop 仍以“工具执行结果”推进状态,不把空文本当完成信号。
202
+
203
+ ### 3) 每轮执行与状态推进
204
+
205
+ loop 对本轮返回做以下处理:
206
+
207
+ 1. 执行工具调用批次
208
+ 2. 拦截 `page_info.*`(在 loop 内视为冗余,不让其成为主流程)
209
+ 3. 处理恢复(元素找不到时自动刷新快照)
210
+ 4. 刷新快照进入下一轮
211
+ 5. 更新下一轮任务文本:
212
+ - 优先使用 `REMAINING`
213
+ - 若缺失 `REMAINING` 且本轮有执行动作:按线性任务剔除做启发式推进(避免整段原任务重复)
214
+ - 若缺失 `REMAINING` 且本轮无执行进展:保持当前任务不推进(按协议回退)
215
+ 6. 若“remaining 未完成 + 无工具调用”:
216
+ - 不直接结束
217
+ - 下一轮注入 `Protocol violation` 强约束提示,要求“要么给可执行工具调用,要么严格 `REMAINING: DONE`”
218
+
219
+ ### 3.1) 找不到元素重试流(Not-found Retry Dialogue)
220
+
221
+ 当执行工具返回“元素未找到”时,不会直接空转看页面,而是进入重试对话流:
222
+
223
+ 1. 收集失败工具调用(name/input)及失败原因
224
+ 2. 将“失败工具集合 + 最新快照 + 当前任务”一起发给模型重试
225
+ 3. 在消息中标注重试次数:`attempt x/y`
226
+ 4. 若仍未命中,默认 `await 2000ms` 后刷新快照再重试
227
+ 5. 超过最大尝试次数后退出重试流,交由模型给出剩余任务或结束
228
+
229
+ 默认参数:
230
+ - `DEFAULT_NOT_FOUND_RETRY_ROUNDS = 2`
231
+ - `DEFAULT_NOT_FOUND_RETRY_WAIT_MS = 2000`
232
+
233
+ ### 4) 停机条件
234
+
235
+ - 无工具调用且 remaining 已完成(或明确 `REMAINING: DONE`)
236
+ - `REMAINING: DONE` 后自然收敛
237
+ - 重复批次防自转触发
238
+ - 达到 `maxRounds`
239
+
240
+ ### 5) 线性任务剔除示例(标准范式)
241
+
242
+ 总任务:`点击按钮 -> 输入框输入 "abc" -> 发送`
243
+
244
+ - 第 1 轮
245
+ - 当前任务:`点击按钮 -> 输入框输入 "abc" -> 发送`
246
+ - 上一轮已执行:空
247
+ - 本轮执行:`点击按钮`
248
+ - 下一轮任务:`输入框输入 "abc" -> 发送`
249
+
250
+ - 第 2 轮
251
+ - 当前任务:`输入框输入 "abc" -> 发送`
252
+ - 上一轮已执行:`点击按钮`
253
+ - 本轮执行:`输入框输入 "abc"`
254
+ - 下一轮任务:`发送`
255
+
256
+ - 第 3 轮
257
+ - 当前任务:`发送`
258
+ - 上一轮已执行:`点击按钮 -> 输入框输入 "abc"`
259
+ - 本轮执行:`发送`
260
+ - 下一轮任务:`DONE`
261
+
262
+ 核心思想:每轮默认“本轮执行成功”,从当前任务中剔除本轮执行项,得到下一轮任务。
263
+
264
+ ---
265
+
266
+ ## Prompt 设计架构(执行版)
267
+
268
+ ### A. System Prompt(全局规则层)
269
+
270
+ 由 `src/core/system-prompt.ts` 生成,职责是定义不可变执行约束:
271
+
272
+ - 从当前快照直接执行,不复述任务
273
+ - 任务按“剔除模型”推进(current + previous + this-round -> new remaining)
274
+ - 禁止 `page_info` 作为规划手段
275
+ - 可见目标尽量同轮批量执行
276
+ - DOM 会变化的动作执行后在下一轮继续
277
+ - 统一输出 `REMAINING` 协议
278
+
279
+ ### B. Round Messages(轮次状态层)
280
+
281
+ 由 `src/core/agent-loop/messages.ts` 构建,职责是把运行时状态传给模型:
282
+
283
+ - `Current remaining instruction`
284
+ - `Done steps (do NOT repeat)`
285
+ - `Previous round planned task array`
286
+ - `Previous round model output (normalized)`
287
+ - `Latest DOM snapshot`
288
+
289
+ 这层是“每轮变化”的动态上下文。
290
+
291
+ ### C. Loop Control(执行控制层)
292
+
293
+ 由 `src/core/agent-loop/index.ts` 负责:
294
+
295
+ - 首轮使用前端注入的 `initialSnapshot`
296
+ - 每轮执行后刷新快照
297
+ - 推进 `remainingInstruction`
298
+ - `REMAINING` 缺失且本轮有执行动作时:按线性任务剔除做启发式推进
299
+ - `REMAINING` 缺失且本轮无执行进展时:保持当前 remaining
300
+ - 防空转、防重复、防无限循环
301
+ - DOM 变更动作触发强制断轮(等待下一轮新快照)
302
+
303
+ ### D. Recovery & Guard(保护层)
304
+
305
+ 由 `src/core/agent-loop/recovery.ts` 提供:
306
+
307
+ - 拦截冗余 `page_info` 调用
308
+ - 元素未命中自动恢复并刷新快照
309
+ - 导航后刷新快照
310
+ - 空转检测
311
+
312
+ 由 `src/core/agent-loop/index.ts` 补充:
313
+ - not-found 重试对话流(失败工具聚合 + 尝试次数 + 等待重试)
314
+
315
+ ---
316
+
147
317
  ## 完整架构流程图(含链路)
148
318
 
149
319
  ### A. 端到端主流程
@@ -225,7 +395,7 @@ sequenceDiagram
225
395
  主流程位于 `src/core/agent-loop/index.ts`:
226
396
 
227
397
  1. 确保当前快照可用
228
- 2. 构建紧凑消息(原始目标 + done steps + 最新快照)
398
+ 2. 构建紧凑消息(remaining + 执行历史 + 上轮模型输出 + 最新快照)
229
399
  3. 调用 AI
230
400
  4. 执行工具调用并记录 trace
231
401
  5. 运行保护机制
@@ -233,20 +403,24 @@ sequenceDiagram
233
403
 
234
404
  ### 渐进式执行状态(新增)
235
405
 
236
- `src/core/agent-loop/index.ts` 内部维护 3 个关键状态:
406
+ `src/core/agent-loop/index.ts` 内部维护 5 个关键状态:
237
407
  - `remainingInstruction`:当前轮次待消费文本(初始值为用户原始输入)
238
408
  - `previousRoundTasks`:上一轮执行任务数组
409
+ - `previousRoundPlannedTasks`:上一轮模型给出的计划批次(执行前)
410
+ - `previousRoundModelOutput`:上一轮模型输出归一化摘要(执行后供下轮输入)
239
411
  - `lastPlannedBatchKey`:用于识别是否连续两轮给出完全相同的任务批次
240
412
 
241
413
  停机规则:
242
- - 若模型返回无工具调用直接结束
414
+ - 若模型返回无工具调用且 remaining 未完成 不直接结束,进入协议修复轮
415
+ - 若模型返回无工具调用且 remaining 已完成(或 `REMAINING: DONE`)→ 结束
243
416
  - 若连续两轮规划出相同任务批次,且上一轮无错误 → 自动终止,防止自转
244
417
  - 若模型文本包含 `REMAINING: DONE`,通常下一轮会自然进入“无工具调用总结”并结束
245
418
 
246
419
  ### 紧凑消息结构
247
420
 
248
421
  由 `messages.ts` 构建,核心语义:
249
- - Master goal:用户原始任务(永远保留)
422
+ - Round 0:用户原始任务 + 首轮快照
423
+ - Round 1+:剩余任务 + done steps + 上轮计划批次 + 上轮模型输出归一化 + 最新快照
250
424
  - Done steps:已完成动作(避免重复)
251
425
  - Execution context + latest snapshot:当前可执行范围
252
426
 
@@ -299,6 +473,14 @@ sequenceDiagram
299
473
 
300
474
  通过 `ToolRegistry` 统一暴露给模型,执行结果标准化返回。
301
475
 
476
+ ### Playwright 对齐说明(当前实现)
477
+
478
+ - `dom.click`:采用更完整的点击事件链(`pointerdown/mousedown/pointerup/mouseup/click`)。
479
+ - `dom.select_option`:支持 `value/label/index`;结果返回显式 `value + label`。
480
+ - `dom.fill`:不允许用于 `checkbox/radio/file/button/submit/reset` 等不兼容输入类型。
481
+ - `wait.wait_for_selector`:支持 `state=attached|visible|hidden|detached`(默认 `attached`)。
482
+ - 快照运行态增强:可见 `select val`、`option selected`、`checked`、`disabled`、`readonly`,减少重复操作。
483
+
302
484
  ---
303
485
 
304
486
  ## 扩展与自定义
package/dist/index.d.mts CHANGED
@@ -61,7 +61,22 @@ type AIClient = {
61
61
  }): Promise<AIChatResponse>;
62
62
  };
63
63
  //#endregion
64
- //#region src/core/agent-loop/index.d.ts
64
+ //#region src/core/agent-loop/types.d.ts
65
+ type AgentLoopMetrics = {
66
+ roundCount: number;
67
+ totalToolCalls: number;
68
+ successfulToolCalls: number;
69
+ failedToolCalls: number;
70
+ toolSuccessRate: number;
71
+ recoveryCount: number;
72
+ redundantInterceptCount: number;
73
+ snapshotReadCount: number;
74
+ latestSnapshotSize: number;
75
+ avgSnapshotSize: number;
76
+ maxSnapshotSize: number;
77
+ inputTokens: number;
78
+ outputTokens: number;
79
+ };
65
80
  /** 工具调用事件回调 — 用于 UI 层实时展示 Agent 进度 */
66
81
  type AgentLoopCallbacks = {
67
82
  /** AI 返回文本回复时触发 */onText?: (text: string) => void; /** AI 请求调用工具时触发(执行前) */
@@ -76,7 +91,8 @@ type AgentLoopCallbacks = {
76
91
  *
77
92
  * @param newUrl 当前页面 URL(URL 变化时传入;元素定位失败时为 undefined)
78
93
  */
79
- onBeforeRecoverySnapshot?: (newUrl?: string) => void;
94
+ onBeforeRecoverySnapshot?: (newUrl?: string) => void; /** 一次 chat 结束后输出结构化运行指标 */
95
+ onMetrics?: (metrics: AgentLoopMetrics) => void;
80
96
  };
81
97
  type AgentLoopResult = {
82
98
  /** AI 的最终文本回复 */reply: string; /** 所有工具调用记录 */
@@ -85,7 +101,8 @@ type AgentLoopResult = {
85
101
  input: unknown;
86
102
  result: ToolCallResult;
87
103
  }>; /** 本轮完整对话消息(含历史 + 本轮,用于多轮记忆累积) */
88
- messages: AIMessage[];
104
+ messages: AIMessage[]; /** 本次运行统计指标 */
105
+ metrics: AgentLoopMetrics;
89
106
  };
90
107
  //#endregion
91
108
  //#region src/web/ref-store.d.ts
@@ -155,7 +172,7 @@ declare class RefStore {
155
172
  get size(): number;
156
173
  }
157
174
  //#endregion
158
- //#region src/web/page-info-tool.d.ts
175
+ //#region src/web/tools/page-info-tool.d.ts
159
176
  /** 快照配置选项 */
160
177
  type SnapshotOptions = {
161
178
  /** 最大遍历深度(默认 6) */maxDepth?: number;
@@ -176,7 +193,10 @@ type SnapshotOptions = {
176
193
  * 传入 RefStore 实例后,每个元素使用确定性 hash ID 替代完整 XPath,
177
194
  * 大幅减少 token 消耗。dom-tool 通过 RefStore.get(id) 解析回 DOM 元素。
178
195
  */
179
- refStore?: RefStore;
196
+ refStore?: RefStore; /** 最大输出节点数(默认 220),超过后停止继续遍历。 */
197
+ maxNodes?: number; /** 每个父节点最多输出的子元素数(默认 25),超出部分会折叠。 */
198
+ maxChildren?: number; /** 文本截断长度(默认 40)。 */
199
+ maxTextLength?: number;
180
200
  };
181
201
  /**
182
202
  * 生成页面 DOM 快照 — 将 DOM 树转为 AI 可理解的文本描述。
@@ -201,16 +221,16 @@ type SnapshotOptions = {
201
221
  declare function generateSnapshot(root?: Element, options?: SnapshotOptions | number): string;
202
222
  declare function createPageInfoTool(): ToolDefinition;
203
223
  //#endregion
204
- //#region src/web/dom-tool.d.ts
224
+ //#region src/web/tools/dom-tool.d.ts
205
225
  declare function createDomTool(): ToolDefinition;
206
226
  //#endregion
207
- //#region src/web/navigate-tool.d.ts
227
+ //#region src/web/tools/navigate-tool.d.ts
208
228
  declare function createNavigateTool(): ToolDefinition;
209
229
  //#endregion
210
- //#region src/web/wait-tool.d.ts
230
+ //#region src/web/tools/wait-tool.d.ts
211
231
  declare function createWaitTool(): ToolDefinition;
212
232
  //#endregion
213
- //#region src/web/evaluate-tool.d.ts
233
+ //#region src/web/tools/evaluate-tool.d.ts
214
234
  declare function createEvaluateTool(): ToolDefinition;
215
235
  //#endregion
216
236
  //#region src/web/messaging.d.ts
@@ -304,7 +324,8 @@ type WebAgentOptions = {
304
324
  token?: string; /** AI 提供商: "copilot" | "openai" | "anthropic"(默认 "copilot") */
305
325
  provider?: string; /** 模型名称(默认 "gpt-4o") */
306
326
  model?: string; /** 自定义 API 基础 URL(可选,覆盖 provider 默认值) */
307
- baseURL?: string; /** 是否启用干运行模式 */
327
+ baseURL?: string; /** 是否启用流式输出(SSE)。默认 true;false 时使用 JSON 非流式响应。 */
328
+ stream?: boolean; /** 是否启用干运行模式 */
308
329
  dryRun?: boolean; /** 自定义系统提示词(不传则使用默认 Web 提示词) */
309
330
  systemPrompt?: string; /** 最大工具调用轮次(默认 10) */
310
331
  maxRounds?: number; /** 是否启用多轮对话记忆(默认 false) */
@@ -319,6 +340,7 @@ declare class WebAgent {
319
340
  private provider;
320
341
  private model;
321
342
  private baseURL?;
343
+ private stream;
322
344
  private dryRun;
323
345
  private maxRounds;
324
346
  private customSystemPrompt?;
@@ -354,6 +376,10 @@ declare class WebAgent {
354
376
  setProvider(provider: string): void;
355
377
  /** 设置模型 */
356
378
  setModel(model: string): void;
379
+ /** 设置是否启用流式输出(SSE) */
380
+ setStream(enabled: boolean): void;
381
+ /** 获取当前流式输出开关状态 */
382
+ getStream(): boolean;
357
383
  /** 切换干运行模式 */
358
384
  setDryRun(enabled: boolean): void;
359
385
  /** 设置自定义系统提示词 */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/tool-registry.ts","../src/core/types.ts","../src/core/agent-loop/index.ts","../src/web/ref-store.ts","../src/web/page-info-tool.ts","../src/web/dom-tool.ts","../src/web/navigate-tool.ts","../src/web/wait-tool.ts","../src/web/evaluate-tool.ts","../src/web/messaging.ts","../src/web/index.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/core/tool-registry.ts","../src/core/types.ts","../src/core/agent-loop/types.ts","../src/web/ref-store.ts","../src/web/tools/page-info-tool.ts","../src/web/tools/dom-tool.ts","../src/web/tools/navigate-tool.ts","../src/web/tools/wait-tool.ts","../src/web/tools/evaluate-tool.ts","../src/web/messaging.ts","../src/web/index.ts"],"mappings":"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"}