Browser Login
对目标站点执行一次认证,然后把得到的会话凭据保管起来,使后续技能(browser-extract、browser-form-fill、browser-test)可以复用,而无需重新驱动认证流程。该技能借鉴了 Browserbase 的 cookie-sync/SKILL.md 模式,但把结果上下文存储在 AgentDB 中,而不是托管后端上。
适用场景
- 为智能体将反复访问的主机建立可复用的认证。
- 刷新已过期的已保管 cookie 集合。
- 捕获需要交互完成的、受 MFA 保护的会话。
步骤
- 通过 browser-record 打开一个已录制的会话。
- 驱动认证流程——用 browser_fill / browser_type 填写凭据。凭据来自用户或环境;不要从 .env 读取,也不要粘贴到 trajectory 参数中。
- 处理 MFA(当使用 --mfa 时):暂停等待用户输入,或调用用户的 TOTP 辅助工具;只捕获最终的重定向,不捕获验证码本身。
- 通过 browser_eval 捕获 cookie:
document.cookie // returns the cookie string for the active document
或在暴露该能力的地方使用 Playwright context API。
- AIDefence 清洗:
Each cookie value passes aidefence_scan to flag raw secrets / high-entropy tokens.
看起来是原始密钥的令牌在存入 AgentDB 之前会被 vault 包装(一个不透明句柄);原始值永远不会进入该命名空间。
- 存入 browser-cookies:
npx -y @claude-flow/cli@latest memory store --namespace browser-cookies
--key "<host>"
--value "{vault_handle:<opaque>, expiry:<iso>, aidefence_verdict:safe}"
- 返回 vault 句柄,以便下游技能可以通过计划中的 browser_cookie_use MCP 工具挂载它。
注意事项
- 绝不要记录原始 cookie 值、令牌或密码。认证 POST 的 trajectory 步骤只记录表单字段名,值用 <redacted> 占位符。
- browser_cookie_use MCP 工具已预留(ADR-0001 §7)但尚未实现。在此之前,下游技能通过 scripts/ 中的辅助 bash 函数挂载已保管的 cookie(待定)。
- 有些站点会把 cookie 绑定到 UA 指纹;如果已保管的 cookie 在复用时失败,请重新运行 browser-login。不要尝试自行做指纹匹配。
- 该技能不是凭据存储方案。vault 句柄模式防范的是 AgentDB 泄漏,而不是智能体环境被攻陷。