跳到正文

浏览器配置 ​

Profile 保存一份可复用的浏览器身份和登录态。创建 DoAnything run 时传 profile_id,后续任务可以继续使用这份状态。

当前支持的 API ​

当前后端没有 POST /profiles 创建资源,也没有 PATCH /profiles/{id};不要使用旧文档里的这两个调用。Profile 通过交互式登录流程创建或更新:

http
POST   /api/v1/projects/{pid}/profiles/login
GET    /api/v1/projects/{pid}/profiles
GET    /api/v1/projects/{pid}/profiles/{profile_id}
GET    /api/v1/projects/{pid}/profiles/{profile_id}/login_state
POST   /api/v1/projects/{pid}/profiles/{profile_id}/confirm
DELETE /api/v1/projects/{pid}/profiles/{profile_id}

开始登录:

json
{
  "site_id": "example_site",
  "profile_id": null
}

响应包含 profile_id、session_id 和 live_url;用户在受控浏览器中完成登录后,再调用 confirm。site_id 必须来自后端已注册的站点目录。

在任务中使用 ​

ts
const run = await qoni.doAnything.run({
  token,
  prompt: "打开内部系统,读取今天的待办。",
  profileId: "prof_alice",
});

Profile 接口返回的主要状态字段是 state、last_alive_at、last_used_at 和 last_failure_reason。Cookie 内容不会直接通过 Profile API 返回。

当前 /track/tracks 没有 profile_id 字段,未发布 SDK 修复候选也拒绝 profileId。不要把 DoAnything 的 Profile 用法复制到 Track;兼容边界见 Track。