浏览器配置
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。