Syncless

任务

任务 Console API 参考。

列出任务

列出当前 API key 用户在某个项目里自己拥有的任务。project_id 使用 personal 时会列出 Personal 任务。

GET /api/console/v1/projects/<project_id>/tasks?index=0&pageSize=50Authorization: Bearer <api_key>
GET /api/console/v1/projects/personal/tasks?index=0&pageSize=50Authorization: Bearer <api_key>

返回

{  "tasks": [    {      "id": "<task_id>",      "title": "Draft a launch checklist."    }  ]}

示例

TypeScript

const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const PROJECT_ID = "<project_id>"const projectTasks = await fetch(BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks?index=0&pageSize=50", {  headers: {    "Authorization": "Bearer " + API_KEY,  },})if (!projectTasks.ok) {  throw new Error(await projectTasks.text())}console.log(await projectTasks.json())const personalTasks = await fetch(BASE_URL + "/api/console/v1/projects/personal/tasks?index=0&pageSize=50", {  headers: {    "Authorization": "Bearer " + API_KEY,  },})if (!personalTasks.ok) {  throw new Error(await personalTasks.text())}console.log(await personalTasks.json())

Python

import requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"PROJECT_ID = "<project_id>"project_tasks = requests.get(    BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks?index=0&pageSize=50",    headers={        "Authorization": "Bearer " + API_KEY,    },)project_tasks.raise_for_status()print(project_tasks.json())personal_tasks = requests.get(    BASE_URL + "/api/console/v1/projects/personal/tasks?index=0&pageSize=50",    headers={        "Authorization": "Bearer " + API_KEY,    },)personal_tasks.raise_for_status()print(personal_tasks.json())

cURL

curl "https://api.syncless.ai/api/console/v1/projects/<project_id>/tasks?index=0&pageSize=50" \  -H "Authorization: Bearer <api_key>"curl "https://api.syncless.ai/api/console/v1/projects/personal/tasks?index=0&pageSize=50" \  -H "Authorization: Bearer <api_key>"

创建项目任务

在标准项目中创建一个任务,并立即发送第一条 prompt。传入 upstream_task_id 时,会在同一项目里的已有任务下游创建;不传时会创建无父级任务。

POST /api/console/v1/projects/<project_id>/tasksAuthorization: Bearer <api_key>Content-Type: application/json

请求体

{  "blocks": [    { "type": "text", "text": "Draft a launch checklist." }  ],  "upstream_task_id": "<optional_upstream_task_id>"}
{  "blocks": [    { "type": "text", "text": "Draft a root task." }  ]}

返回

{  "ok": true,  "task": {    "id": "<task_id>",    "title": "Draft a launch checklist.",    "upstreamTaskId": "<upstream_task_id>"  }}

示例

TypeScript

const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const PROJECT_ID = "<project_id>"const response = await fetch(BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks", {  method: "POST",  headers: {    "Authorization": "Bearer " + API_KEY,    "Content-Type": "application/json",  },  body: JSON.stringify({    blocks: [      { type: "text", text: "Draft a launch checklist." },    ],    upstream_task_id: "<upstream_task_id>",  }),})if (!response.ok) {  throw new Error(await response.text())}console.log(await response.json())

Python

import jsonimport requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"PROJECT_ID = "<project_id>"body = json.dumps({    "blocks": [        {"type": "text", "text": "Draft a launch checklist."},    ],    "upstream_task_id": "<upstream_task_id>",}).encode("utf-8")response = requests.post(    BASE_URL + "/api/console/v1/projects/" + PROJECT_ID + "/tasks",    data=body,    headers={        "Authorization": "Bearer " + API_KEY,        "Content-Type": "application/json",    },)response.raise_for_status()print(response.json())

cURL

curl -X POST "https://api.syncless.ai/api/console/v1/projects/<project_id>/tasks" \  -H "Authorization: Bearer <api_key>" \  -H "Content-Type: application/json" \  -d '{    "blocks": [      { "type": "text", "text": "Draft a launch checklist." }    ],    "upstream_task_id": "<upstream_task_id>"  }'

获取任务

获取当前 API key 用户在当前工作区内自己拥有的一个任务。

GET /api/console/v1/tasks/<task_id>Authorization: Bearer <api_key>

返回

{  "task": {    "id": "<task_id>",    "title": "Draft a launch checklist."  }}

示例

TypeScript

const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const TASK_ID = "<task_id>"const response = await fetch(BASE_URL + "/api/console/v1/tasks/" + TASK_ID, {  headers: {    "Authorization": "Bearer " + API_KEY,  },})if (!response.ok) {  throw new Error(await response.text())}console.log(await response.json())

Python

import requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"TASK_ID = "<task_id>"response = requests.get(    BASE_URL + "/api/console/v1/tasks/" + TASK_ID,    headers={        "Authorization": "Bearer " + API_KEY,    },)response.raise_for_status()print(response.json())

cURL

curl "https://api.syncless.ai/api/console/v1/tasks/<task_id>" \  -H "Authorization: Bearer <api_key>"

列出任务消息

列出当前 API key 用户自己拥有的某个任务的历史消息。limit 最大为 20。

GET /api/console/v1/tasks/<task_id>/messages?limit=20Authorization: Bearer <api_key>

返回

{  "ok": true,  "taskId": "<task_id>",  "messages": []}

示例

TypeScript

const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const TASK_ID = "<task_id>"const response = await fetch(BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/messages?limit=20", {  headers: {    "Authorization": "Bearer " + API_KEY,  },})if (!response.ok) {  throw new Error(await response.text())}console.log(await response.json())

Python

import requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"TASK_ID = "<task_id>"response = requests.get(    BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/messages?limit=20",    headers={        "Authorization": "Bearer " + API_KEY,    },)response.raise_for_status()print(response.json())

cURL

curl "https://api.syncless.ai/api/console/v1/tasks/<task_id>/messages?limit=20" \  -H "Authorization: Bearer <api_key>"

向任务发送 prompt

向已有任务发送一条纯文本 prompt,并立刻返回。如果任务正在运行,API 会返回 400,错误码为 TASK_RUNNING。

POST /api/console/v1/tasks/<task_id>/sendAuthorization: Bearer <api_key>Content-Type: application/json

请求体

[  { "type": "text", "text": "Continue with the implementation plan." }]

返回

{ "ok": true }

任务运行中错误

{  "error": "Task is currently running",  "details": {    "code": "TASK_RUNNING"  }}

示例

TypeScript

const BASE_URL = "https://api.syncless.ai"const API_KEY = "<api_key>"const TASK_ID = "<task_id>"const response = await fetch(BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/send", {  method: "POST",  headers: {    "Authorization": "Bearer " + API_KEY,    "Content-Type": "application/json",  },  body: JSON.stringify([    { type: "text", text: "Continue with the implementation plan." },  ]),})if (!response.ok) {  throw new Error(await response.text())}console.log(await response.json())

Python

import jsonimport requestsBASE_URL = "https://api.syncless.ai"API_KEY = "<api_key>"TASK_ID = "<task_id>"body = json.dumps([    {"type": "text", "text": "Continue with the implementation plan."},]).encode("utf-8")response = requests.post(    BASE_URL + "/api/console/v1/tasks/" + TASK_ID + "/send",    data=body,    headers={        "Authorization": "Bearer " + API_KEY,        "Content-Type": "application/json",    },)response.raise_for_status()print(response.json())

cURL

curl -X POST "https://api.syncless.ai/api/console/v1/tasks/<task_id>/send" \  -H "Authorization: Bearer <api_key>" \  -H "Content-Type: application/json" \  -d '[    { "type": "text", "text": "Continue with the implementation plan." }  ]'

On this page