API керування комп'ютерами
Віддалене керування зареєстрованими комп'ютерами — постановка команд у чергу, знімки екрана, запуск скриптів на віддалених машинах.
API керування комп'ютерами
API керування комп'ютерами дозволяє віддалено керувати зареєстрованими комп'ютерами.
Невеликий агент (screen-remote-agent) працює на цільовій машині, опитує сервер
щодо команд, виконує їх та надсилає результати назад. Це забезпечує автоматизацію
GUI під керуванням LLM.
Архітектура
┌─────────────┐ queue cmd ┌──────────┐ poll ┌─────────────────┐
│ LLM Agent │ ───────────▶ │ Synapse │ ◀───── │ screen-remote │
│ (user-side) │ │ Server │ ──────▶│ (on target PC) │
└─────────────┘ └──────────┘ result └─────────────────┘
▲
│
┌─────────────┐
│ Human UI │
│ (browser) │
└─────────────┘Кінцеві точки для користувача (Mind Key або JWT)
GET /computers/list
Список усіх зареєстрованих комп'ютерів.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/listGET /computers/:id
Отримати деталі конкретного комп'ютера.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001POST /computers/install-code
Згенерувати код встановлення для реєстрації нового комп'ютера.
curl -X POST https://synapse.schaefer.zone/computers/install-code \
-H "Authorization: Bearer YOUR_MIND_KEY" \
-H "Content-Type: application/json" \
-d '{"computer_name": "office-mac"}'Відповідь: { "install_code": "ic_xyz789", "expires_at": "..." }
POST /computers/:id/commands
Поставити команду в чергу для виконання віддаленим агентом.
curl -X POST https://synapse.schaefer.zone/computers/comp_001/commands \
-H "Authorization: Bearer YOUR_MIND_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "screenshot",
"payload": {}
}'Відповідь: { "command_id": "cmd_001", "status": "queued" }
GET /computers/:id/command (через запит)
Поставити команду в чергу через GET (для простих випадків).
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
"https://synapse.schaefer.zone/computers/comp_001/command?type=screenshot"GET /computers/:id/commands
Список нещодавніх команд для комп'ютера.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
"https://synapse.schaefer.zone/computers/comp_001/commands?limit=50"GET /computers/:id/commands/:cid
Отримати статус + результат конкретної команди.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/commands/cmd_001GET /computers/:id/screenshot
Одноразове виконання: поставити команду знімка екрана в чергу та чекати до 30 с на результат.
curl -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/screenshot > screenshot.pngPOST /computers/:id/disable
Вимкнути комп'ютер (відкликає його токен, зберігає запис для аудиту).
curl -X POST -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001/disableDELETE /computers/:id
Видалити комп'ютер назавжди.
curl -X DELETE -H "Authorization: Bearer YOUR_MIND_KEY" \
https://synapse.schaefer.zone/computers/comp_001Кінцеві точки для агента (Computer Token)
Ці кінцеві точки використовує screen-remote-agent, що працює на цільовій
машині. Вони використовують Computer Token (повертається /computers/register), а
не Mind Key.
POST /computers/register
Активувати код встановлення та отримати Computer Token.
curl -X POST https://synapse.schaefer.zone/computers/register \
-H "Content-Type: application/json" \
-d '{
"code": "ic_xyz789",
"computer_name": "office-mac",
"platform": "darwin",
"platform_release": "14.5.0",
"python": "3.12.4"
}'Відповідь: { "computer_id": "comp_001", "computer_token": "ct_..." }
GET /computers/me/poll
Довге опитування нових команд. Агент викликає це в циклі.
curl -H "Authorization: Bearer ct_YOUR_COMPUTER_TOKEN" \
"https://synapse.schaefer.zone/computers/me/poll?wait=30"Повертає негайно, якщо команди очікують, або через wait секунд, якщо ні.
POST /computers/me/commands/:cid/result
Надіслати результат виконання команди.
curl -X POST https://synapse.schaefer.zone/computers/me/commands/cmd_001/result \
-H "Authorization: Bearer ct_YOUR_COMPUTER_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "done",
"result": { "screenshot_b64": "iVBORw0KG..." }
}'Типи команд
| Тип | Payload | Опис |
|---|---|---|
screenshot |
{} |
Захоплення екрана як PNG (base64) |
click |
{x, y} |
Клацання за координатами |
move |
{x, y} |
Переміщення миші за координатами |
type |
{text} |
Введення тексту в позиції курсора |
key |
{keys: ["Ctrl","c"]} |
Натискання комбінації клавіш |
scroll |
{deltaX, deltaY} |
Прокручування колеса |
drag |
{fromX, fromY, toX, toY} |
Перетягування |
Типовий шаблон: автоматизація GUI під керуванням LLM
# Робочий процес LLM-агента
1. List computers: GET /computers/list
2. Take screenshot: GET /computers/:id/screenshot
3. Analyze screenshot (vision model)
4. Queue click: POST /computers/:id/commands {type:"click", payload:{x,y}}
5. Wait for result: GET /computers/:id/commands/:cid
6. Take new screenshot to verify
7. Repeat until task doneНаступні кроки
- Браузерний проксі — окрема служба для автоматизації браузера
- Посібник із self-hosted агентів