@optima-chat/optima-agent 0.8.33 → 0.8.34

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.
@@ -141,7 +141,10 @@
141
141
  "Bash(browser-cli close:*)",
142
142
  "Bash(npm update:*)",
143
143
  "Bash(node -e \"console.log\\(require\\('./node_modules/@optima-chat/browser-cli/package.json'\\).version\\)\")",
144
- "WebFetch(domain:raw.githubusercontent.com)"
144
+ "WebFetch(domain:raw.githubusercontent.com)",
145
+ "Bash(aws ecs:*)",
146
+ "Bash(aws ecr:*)",
147
+ "Bash(gh search:*)"
145
148
  ],
146
149
  "deny": [],
147
150
  "ask": []
@@ -84,3 +84,83 @@ browser-cli keys Enter # Press Enter
84
84
  # 3. Close when done
85
85
  browser-cli close
86
86
  ```
87
+
88
+ ## Workflow(操作录制与回放)
89
+
90
+ 将浏览器操作录制为可复用的 workflow,后续执行时零 token 消耗。
91
+
92
+ ### Workflow 命令
93
+
94
+ ```bash
95
+ # 保存与管理
96
+ browser-cli save-workflow <name> [--description <desc>] # 保存当前 session 操作为 workflow
97
+ browser-cli list-workflows # 列出所有 workflow
98
+ browser-cli workflow-info <name> # 查看 workflow 详情(步骤列表)
99
+ browser-cli delete-workflow <name> # 删除 workflow
100
+
101
+ # 编辑(保存后参数化)
102
+ browser-cli edit-workflow <name> --set-var --step <N> --name <varName> # 将步骤 N 的值设为变量
103
+ browser-cli edit-workflow <name> --add-input <varName> --type string [--required] # 声明输入变量(type: string/number/bool)
104
+ browser-cli edit-workflow <name> --add-step extract --selectors '<json>' [--screenshot] # 添加 extract 步骤
105
+ browser-cli edit-workflow <name> --add-step wait_for_element --selector '<css>' [--timeout 30] # 添加等待步骤
106
+ browser-cli edit-workflow <name> --remove-step <N> # 删除步骤
107
+ browser-cli edit-workflow <name> --update-step <N> --requires-confirmation # 标记敏感操作
108
+ browser-cli edit-workflow <name> --update-step <N> --target-text '<text>' # 修改定位文本
109
+ browser-cli edit-workflow <name> --auto-clean # 自动清理冗余步骤
110
+
111
+ # 执行与监控
112
+ browser-cli run-workflow <name> [--param key=value ...] [--force] # 执行(--force 自动关闭已有 session)
113
+ browser-cli workflow-status <task_id> # 查询执行状态
114
+ browser-cli workflow-input <task_id> --var key=value # 提供变量值
115
+ browser-cli workflow-input <task_id> --value <val> # 提供值(仅单变量时)
116
+ browser-cli workflow-input <task_id> --confirm # 确认敏感操作
117
+ browser-cli workflow-cancel <task_id> # 取消执行
118
+
119
+ # 降级接管(workflow 失败后用 --session 继续操作)
120
+ browser-cli --session <session_id> dom # 查看降级 session 的页面
121
+ browser-cli --session <session_id> click 5 # 在降级 session 上操作
122
+ browser-cli --session <session_id> close # 完成后关闭
123
+ ```
124
+
125
+ **注意**:
126
+ - `--force` 会自动关闭已有 session 并取消运行中的 task
127
+ - 不带 `--force` 时,如果有活跃 session 或运行中 task 会返回 409 错误
128
+
129
+ ### 保存 workflow
130
+
131
+ 当用户完成浏览器操作后说"把这个操作保存下来"或类似意图时:
132
+
133
+ 1. **保存前先查看最终页面 DOM**:`browser-cli dom` — 记住页面结构,为 extract 步骤准备 CSS selector(注意:session 必须还在,未 close)
134
+ 2. `browser-cli save-workflow '操作名称'` — 保存操作记录(自动附带 DOM snapshot)。同名 workflow 不会覆盖,需先 `delete-workflow` 再重新保存
135
+ 3. 用 `edit-workflow` 进行参数化:
136
+ - 识别可变值(搜索词、用户名、密码等),用 `--set-var` 替换为变量占位符
137
+ - 用 `--add-input` 声明 input_schema
138
+ - 如果 workflow 需要返回数据(如查价格、查状态),根据保存时看到的 DOM 结构添加 extract 步骤(用 CSS selector 指定要提取的字段);纯执行型 workflow(如发帖)可不加 extract
139
+ - 对支付、删除等敏感操作,用 `--update-step N --requires-confirmation` 标记
140
+ 4. 确认 workflow 可用:`browser-cli workflow-info '操作名称'`
141
+
142
+ ### 执行 workflow
143
+
144
+ 当用户说"用之前录的 XX workflow"或类似意图时:
145
+
146
+ 1. `browser-cli list-workflows` — 确认 workflow 存在
147
+ 2. `browser-cli run-workflow '名称' --param key=value` — 启动执行
148
+ 3. `browser-cli workflow-status <task_id>` — 每 3-5 秒轮询一次状态
149
+ 4. 根据状态处理:
150
+ - `needs_input` → 检查输出中的字段:
151
+ - 有 `Missing: xxx` → 缺少变量值,向用户询问后用 `workflow-input --var xxx=值` 提供
152
+ - 有 `Confirmation: xxx` → 敏感操作待确认,告知用户后用 `workflow-input --confirm` 确认
153
+ - `failed` → 用 `--session` flag 接管当前 session 完成任务(见降级接管)
154
+ - `completed` → 返回 Output 给用户
155
+
156
+ ### 降级接管
157
+
158
+ workflow 执行失败后,session 仍然活跃。用 `workflow-status` 返回的 session ID 接管:
159
+
160
+ ```bash
161
+ browser-cli --session <session_id> dom # 查看当前页面
162
+ browser-cli --session <session_id> click 5 # 用普通命令完成剩余操作
163
+ browser-cli --session <session_id> close # 完成后关闭
164
+ ```
165
+
166
+ 不需要重新 `launch`。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@optima-chat/optima-agent",
3
- "version": "0.8.33",
3
+ "version": "0.8.34",
4
4
  "description": "基于 Claude Agent SDK 的电商运营 AI 助手",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",