Подтверждайте действия вашего агента с телефона.
ColliePWA показывает вопросы твоего агента на телефоне рядом с терминальными агентами. Ты отвечаешь в одно касание, и агент получает ответ.
01/Durable agents
Ваш собственный агент на вашем телефоне.
Durable agent представляет собой агента, которого ты создаешь и запускаешь сам, например на Pi Durable. Он общается с твоим Collie по небольшому протоколу, wire, а SDK для Node и Bun берет протокол на себя. ColliePWA отрисовывает вопросы агента, его диалоги и чат, поэтому писать код для UI не нужно.
Экспериментально. Протокол wire может измениться в любом минорном релизе, либо функция может быть удалена. Сейчас его поддерживают только примеры в репозитории Collie.
02/ColliePWA
Что вы получаете
- Подтверждения с таймером оставшегося времени
- Вопрос от агента превращается в карточку на телефоне: да или нет, выбор, строка текста или короткая форма. Ты отвечаешь в одно касание, а карточка показывает, сколько еще открыт вопрос.
- Чат с историей
- Каждый диалог агента открывается как чат. Агент сохраняет историю, поэтому ты можешь читать и закрытые диалоги.
- Отдельный раздел и push-уведомления
- Агент получает свой раздел Durable agents на телефоне, и этот раздел поднимается выше твоих пространств, когда ждет вопрос. С включенным push вопрос также присылает уведомление.
- Рядом с сессиями вашего терминала
- Твои сессии Herdr, tmux и zellij выглядят и работают как раньше. Durable agent представляет собой еще один источник сессий.
03/hello.mjs
Десять строк до первого вопроса
Установи SDK в папку агента:
$ npm install @colliepwa/durable-sdk@experimentalСохрани этого агента как hello.mjs, затем запусти его через node hello.mjs или bun hello.mjs. Он выведет путь к своему сокету и будет ждать.
import { openCollie } from "@colliepwa/durable-sdk";
const socket = process.env.COLLIE_DURABLE_SOCKET ?? `${process.env.XDG_RUNTIME_DIR}/hello/app.sock`;
const collie = await openCollie({ socket, hostName: "hello", caps: { asks: true } });
const pane = collie.workspace("hello", { title: "Hello" }).tab("main", { title: "Questions" }).pane("deploy", { title: "Deploy", harness: "hello" });
collie.ready();
console.log(`listening ${collie.address}`);
const options = [{ id: "yes", label: "Yes" }, { id: "no", label: "No" }];
const answer = await pane.ask({ kind: "choice", toolCallId: "deploy-1", itemId: "deploy-1", title: "Deploy to staging?", options });
console.log(`answer: ${answer.optionIds[0]}`);
await collie.close();Во втором терминале подключи агента к Collie, используя путь из вывода. Флаг --restart перезапускает мост Collie: телефон переподключится через несколько секунд, а сессии в терминале продолжат работать.
$ collie durable attach hello --socket /run/user/1000/hello/app.sock --restart
Открой ColliePWA на телефоне. В разделе Durable agents появится строка hello. Открой ее, и в ее единственном диалоге будет вопрос "Deploy to staging?". Нажми Yes или No, и агент выведет твой ответ и завершит работу.
04/Socket · HTTPS
Где она работает
- На той же машине
- Collie связывается с агентом через приватный сокет, файл, который может открыть только твой пользователь.
- В любом другом месте
- Collie связывается с агентом по HTTPS с токеном длиной от 32 случайных байт, и любой владелец токена может ответить за тебя.
- Node или Bun
- SDK работает на Node 22.18 или более поздней версии и на Bun 1.4 или более поздней версии.
05/Документация
Читать документацию
Страница Durable agents в документации описывает настройку, два способа подключения, решение проблем и то, что durable agent может показывать на телефоне.