agentpage 0.0.15 → 0.0.17

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
@@ -16,6 +16,38 @@ AutoPilot 的目标不是生成文本,而是在浏览器中完成真实任务
16
16
  - `core`:环境无关引擎(Agent Loop、AI Client、Tool Registry)
17
17
  - `web`:浏览器能力实现(DOM/导航/快照/等待/执行)
18
18
 
19
+ ## 优势
20
+
21
+ - 基于项目路由落地前端级 Agent:
22
+ - Agent 直接运行在真实业务页面,可感知当前路由上下文(列表页、详情页、弹窗页等)
23
+ - 同一套执行循环可在不同路由中持续推进任务,不依赖后端额外编排
24
+ - 前端注册 Tools,快速接入复杂工程:
25
+ - 通过 `registerTools()` 和 `registerTool()` 把 DOM 操作、导航、等待、业务动作统一抽象为可调用能力
26
+ - 复杂页面中的“表单 + 下拉 + 弹窗 + 列表 + 路由跳转”可在同一 Agent 流程内组合执行
27
+ - 对既有前端工程侵入低:
28
+ - 保持分层边界(`core` 环境无关、`web` 负责浏览器实现),便于在现有项目按需接入
29
+ - 通过快照驱动与工具调用机制,优先复用现有页面结构与交互逻辑
30
+
31
+ ## 企业项目接入建议(3 步)
32
+
33
+ ### 第 1 步:按路由划分 Agent 场景
34
+
35
+ - 先选 1~2 个高价值页面(如“列表 + 详情 + 创建弹窗”)作为首批接入路由
36
+ - 为每个路由定义“可执行动作清单”(查询、筛选、填写、提交、跳转)
37
+ - 明确哪些区域需要排除在快照外(如自有 Agent 面板、调试浮层)
38
+
39
+ ### 第 2 步:注册工具并做业务动作封装
40
+
41
+ - 基础能力先接入内置工具:DOM / navigate / wait / evaluate / page_info
42
+ - 再补充业务工具:把常用复杂操作封装成稳定动作(如“创建仓库”“发布任务”)
43
+ - 保持工具输入输出稳定:参数尽量结构化,错误码可观测,便于恢复重试
44
+
45
+ ### 第 3 步:上线前做最小闭环验证
46
+
47
+ - 以真实路由跑通 3 类任务:表单填写、下拉选择、弹窗确认/列表结果校验
48
+ - 对关键链路记录指标:工具成功率、恢复次数、快照体积、轮次收敛情况
49
+ - 先灰度到内部场景,再逐步扩大覆盖页面与工具范围
50
+
19
51
  ---
20
52
 
21
53
  ## 快速开始
@@ -148,6 +180,7 @@ AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可
148
180
  - 模型可在文本中返回:
149
181
  - `REMAINING: <剩余内容>`:表示还有任务要继续
150
182
  - `REMAINING: DONE`:表示剩余任务已空
183
+ - 注意:模型在 `tool_calls` 轮可能返回空 `content`;这不代表任务结束。
151
184
 
152
185
  ### 3) 批量但不跨变更链式执行
153
186
 
@@ -180,6 +213,7 @@ AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可
180
213
 
181
214
  - `Current remaining instruction`(当前剩余任务)
182
215
  - `Previous round planned task array`(上一轮已执行任务)
216
+ - `Previous round model output (normalized)`(上一轮模型输出归一化摘要)
183
217
  - `Latest DOM snapshot`(当前快照)
184
218
 
185
219
  说明:
@@ -195,6 +229,9 @@ AI 每一轮不是“凭记忆猜页面”,而是基于最新快照选择可
195
229
  - `REMAINING: <new remaining instruction>`
196
230
  - 或 `REMAINING: DONE`
197
231
 
232
+ 实现细节:
233
+ - 若该轮返回 `tool_calls` 且 `content` 为空,loop 仍以“工具执行结果”推进状态,不把空文本当完成信号。
234
+
198
235
  ### 3) 每轮执行与状态推进
199
236
 
200
237
  loop 对本轮返回做以下处理:
@@ -205,7 +242,11 @@ loop 对本轮返回做以下处理:
205
242
  4. 刷新快照进入下一轮
206
243
  5. 更新下一轮任务文本:
207
244
  - 优先使用 `REMAINING`
208
- - 若缺失 `REMAINING`,保持当前任务不推进(按协议回退)
245
+ - 若缺失 `REMAINING` 且本轮有执行动作:按线性任务剔除做启发式推进(避免整段原任务重复)
246
+ - 若缺失 `REMAINING` 且本轮无执行进展:保持当前任务不推进(按协议回退)
247
+ 6. 若“remaining 未完成 + 无工具调用”:
248
+ - 不直接结束
249
+ - 下一轮注入 `Protocol violation` 强约束提示,要求“要么给可执行工具调用,要么严格 `REMAINING: DONE`”
209
250
 
210
251
  ### 3.1) 找不到元素重试流(Not-found Retry Dialogue)
211
252
 
@@ -223,7 +264,7 @@ loop 对本轮返回做以下处理:
223
264
 
224
265
  ### 4) 停机条件
225
266
 
226
- - 无工具调用
267
+ - 无工具调用且 remaining 已完成(或明确 `REMAINING: DONE`)
227
268
  - `REMAINING: DONE` 后自然收敛
228
269
  - 重复批次防自转触发
229
270
  - 达到 `maxRounds`
@@ -274,6 +315,7 @@ loop 对本轮返回做以下处理:
274
315
  - `Current remaining instruction`
275
316
  - `Done steps (do NOT repeat)`
276
317
  - `Previous round planned task array`
318
+ - `Previous round model output (normalized)`
277
319
  - `Latest DOM snapshot`
278
320
 
279
321
  这层是“每轮变化”的动态上下文。
@@ -285,7 +327,8 @@ loop 对本轮返回做以下处理:
285
327
  - 首轮使用前端注入的 `initialSnapshot`
286
328
  - 每轮执行后刷新快照
287
329
  - 推进 `remainingInstruction`
288
- - `REMAINING` 缺失时不推进任务(保持当前 remaining)
330
+ - `REMAINING` 缺失且本轮有执行动作时:按线性任务剔除做启发式推进
331
+ - `REMAINING` 缺失且本轮无执行进展时:保持当前 remaining
289
332
  - 防空转、防重复、防无限循环
290
333
  - DOM 变更动作触发强制断轮(等待下一轮新快照)
291
334
 
@@ -384,7 +427,7 @@ sequenceDiagram
384
427
  主流程位于 `src/core/agent-loop/index.ts`:
385
428
 
386
429
  1. 确保当前快照可用
387
- 2. 构建紧凑消息(原始目标 + done steps + 最新快照)
430
+ 2. 构建紧凑消息(remaining + 执行历史 + 上轮模型输出 + 最新快照)
388
431
  3. 调用 AI
389
432
  4. 执行工具调用并记录 trace
390
433
  5. 运行保护机制
@@ -392,20 +435,24 @@ sequenceDiagram
392
435
 
393
436
  ### 渐进式执行状态(新增)
394
437
 
395
- `src/core/agent-loop/index.ts` 内部维护 3 个关键状态:
438
+ `src/core/agent-loop/index.ts` 内部维护 5 个关键状态:
396
439
  - `remainingInstruction`:当前轮次待消费文本(初始值为用户原始输入)
397
440
  - `previousRoundTasks`:上一轮执行任务数组
441
+ - `previousRoundPlannedTasks`:上一轮模型给出的计划批次(执行前)
442
+ - `previousRoundModelOutput`:上一轮模型输出归一化摘要(执行后供下轮输入)
398
443
  - `lastPlannedBatchKey`:用于识别是否连续两轮给出完全相同的任务批次
399
444
 
400
445
  停机规则:
401
- - 若模型返回无工具调用直接结束
446
+ - 若模型返回无工具调用且 remaining 未完成 不直接结束,进入协议修复轮
447
+ - 若模型返回无工具调用且 remaining 已完成(或 `REMAINING: DONE`)→ 结束
402
448
  - 若连续两轮规划出相同任务批次,且上一轮无错误 → 自动终止,防止自转
403
449
  - 若模型文本包含 `REMAINING: DONE`,通常下一轮会自然进入“无工具调用总结”并结束
404
450
 
405
451
  ### 紧凑消息结构
406
452
 
407
453
  由 `messages.ts` 构建,核心语义:
408
- - Master goal:用户原始任务(永远保留)
454
+ - Round 0:用户原始任务 + 首轮快照
455
+ - Round 1+:剩余任务 + done steps + 上轮计划批次 + 上轮模型输出归一化 + 最新快照
409
456
  - Done steps:已完成动作(避免重复)
410
457
  - Execution context + latest snapshot:当前可执行范围
411
458
 
@@ -417,6 +464,26 @@ sequenceDiagram
417
464
  - 去重历史快照
418
465
  - 剥离旧 prompt 快照
419
466
 
467
+ ### 快照读取流程图
468
+
469
+ ```mermaid
470
+ flowchart TD
471
+ A[chat 开始 / 新一轮开始] --> B{是否已有 latestSnapshot}
472
+ B -->|有| C[直接复用当前快照]
473
+ B -->|无| D[readPageSnapshot via page_info.snapshot]
474
+ D --> E[recordSnapshotStats 更新统计]
475
+ E --> F[wrapSnapshot 添加 SNAPSHOT_START/END]
476
+ C --> G[buildCompactMessages 注入 Latest DOM snapshot]
477
+ F --> G
478
+ G --> H[stripSnapshotFromPrompt 剥离 system prompt 旧快照]
479
+ H --> I[发送给模型并执行工具]
480
+ I --> J{是否触发恢复重拍}
481
+ J -->|导航成功/元素未找到恢复/每轮结束刷新| K[readPageSnapshot 刷新 latestSnapshot]
482
+ J -->|否| L[进入下一轮]
483
+ K --> E
484
+ L --> B
485
+ ```
486
+
420
487
  ---
421
488
 
422
489
  ## 保护机制
@@ -458,6 +525,14 @@ sequenceDiagram
458
525
 
459
526
  通过 `ToolRegistry` 统一暴露给模型,执行结果标准化返回。
460
527
 
528
+ ### Playwright 对齐说明(当前实现)
529
+
530
+ - `dom.click`:采用更完整的点击事件链(`pointerdown/mousedown/pointerup/mouseup/click`)。
531
+ - `dom.select_option`:支持 `value/label/index`;结果返回显式 `value + label`。
532
+ - `dom.fill`:不允许用于 `checkbox/radio/file/button/submit/reset` 等不兼容输入类型。
533
+ - `wait.wait_for_selector`:支持 `state=attached|visible|hidden|detached`(默认 `attached`)。
534
+ - 快照运行态增强:可见 `select val`、`option selected`、`checked`、`disabled`、`readonly`,减少重复操作。
535
+
461
536
  ---
462
537
 
463
538
  ## 扩展与自定义
@@ -1 +1 @@
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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"}
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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"}