用途:browser-intent 在底层 browser_* 选择器工具之上提供自然语言层。browser-extract、browser-form-fill 组合的是 browser_click、browser_fill、browser_snapshot 这类选择器原语,而 browser-intent 允许调用方直接说明意图(如“Click the login button”“Fill the search box with cats and submit”),并交由 page-agent 执行——后者是注入页面的 JS,把 DOM 转为文本并对它驱动 LLM 工具调用循环。
适用场景:目标元素用文字描述比可靠选择更容易(动态类名、结构歧义、A/B 测试标记);一次性交互,不值得写完整选择器链。若已知确切选择器或 ref(@e1),应优先直接用 browser_click / browser_fill / browser_snapshot,因为 browser_act 会增加 LLM 延迟与成本。
使用方式:调用 browser_act,传入 task 字符串,可选 url(先导航)与 session(默认 "default"):
mcp__plugin_ruflo-core_ruflo__browser_act({ task: "Click the login button", url: "https://example.com/account", session: "my-session" })
响应约定:{ success: true, result, steps, history, contentFlagged, llmSource } 表示意图已执行,result 是经 AIDefence 过滤的最终文本,history 是完整步骤轨迹,steps 为 history.length。{ success: true, degraded: true, reason, hint } 表示 page-agent 未安装或未配置 OpenAI 兼容 LLM 提供方,不应重试,而是按 hint 回退到基于选择器的 browser_* 工具。{ success: false, error, ... } 表示真实失败(浏览器打开、注入、执行超时或 page-agent 的 execute() 报失败)。contentFlagged 为 true 时,结果已被 AIDefence 脱敏,不要尝试还原原文。若交互需要回放,优先用 browser-record 录制会话;browser_act 本身不打开 RVF 容器,只作用于传入的 session id(或 "default")。
提供方要求:page-agent 会在浏览器页面上下文中,以普通 OpenAI 兼容 POST {baseURL}/chat/completions 直接调用其 LLM。因此仅有 ANTHROPIC_API_KEY 不足(Anthropic 原生 API 形状不同,为 /v1/messages)。需配置 OPENROUTER_API_KEY、OLLAMA_API_KEY,或 CLAUDE_FLOW_PAGE_AGENT_BASE_URL 与 CLAUDE_FLOW_PAGE_AGENT_API_KEY 以指向自定义 OpenAI 兼容端点。真实提供方密钥不会进入页面:browser_act 会启动短暂的本地回环 HTTP 代理,在服务端持有密钥并注入真实 Authorization 头,页面只看到 127.0.0.1 URL 和占位密钥字符串。
限制:page-agent 是 optionalDependencies 条目(如 doctor 或降级提示要求可执行 npm i page-agent),缺失时插件仍可运行,只是失去自然语言层。npm 包中的 demo 自动初始化尾部会在注入前被剥离,不应看到发往 page-ag-testing-* 主机的流量。每次成功的 browser_act 调用会尽力把意图与轨迹记录到 browser memory 命名空间(ADR-174 蒸馏循环),这是即发即忘,记忆存储失败不影响工具调用。timeoutMs(默认 120000)限制轮询 execute() 完成的时间,慢速多步意图可能需要调大。