Установка скиллов и плагинов OpenClaw осуществляется на ваш страх и риск. Все файлы были получены из открытых источников и предоставляются «как есть». Мы не гарантируем их корректную работу, безопасность или совместимость с вашей системой. Перед установкой настоятельно рекомендуется ознакомиться с содержимым кода и убедиться, что вы понимаете, какие изменения будут внесены в вашу систему.
OpenCode ACP Skill
Управляйте OpenCode напрямую через протокол Agent Client Protocol (ACP). Этот навык позволяет запускать сессии, отправлять промпты, возобновлять диалоги и управлять обновлениями OpenCode.
Метаданные
- Документация ACP: https://agentclientprotocol.com/llms.txt
- GitHub репозиторий: https://github.com/bjesuiter/opencode-acp-skill
- Сообщить о проблеме: https://github.com/bjesuiter/opencode-acp-skill/issues
Краткая справка
| Действие | Как выполнить |
|---|---|
| Запустить OpenCode | bash(command: "opencode acp", background: true) |
| Отправить сообщение | process.write(sessionId, data: " |
| Прочитать ответ | process.poll(sessionId) — каждые 2 секунды |
| Остановить OpenCode | process.kill(sessionId) |
| Список сессий | bash(command: "opencode session list") |
| Возобновить сессию | Выбрать → session/load |
| Проверить версию | bash(command: "opencode --version") |
Что такое OpenCode ACP Control
OpenCode ACP Control — это интерфейс, позволяющий AI-агентам взаимодействовать с OpenCode через протокол ACP. Используя формат JSON-RPC 2.0 и поток сообщений с разделением по строкам, он обеспечивает программное управление жизненным циклом сессий, выполнением запросов и состоянием среды. :
Навык выступает связующим звеном между CLI-инструментами и сложными агентными сценариями, позволяя надежно управлять кодинг-сессиями, сохранять историю взаимодействий и работать с фоновыми процессами.
Сценарии использования
- Автоматизация задач разработки через прямую отправку промптов в OpenCode
- Управление долгоживущими сессиями разработки
- Оркестрация многошаговых диалогов с AI
- Автоматическое обновление OpenCode до актуальной версии
- Мониторинг прогресса через опрос состояния сессии
Как это работает
- Запуск OpenCode в режиме ACP как фонового процесса с получением sessionId
- Инициализация соединения через JSON-RPC запрос
initialize - Создание новой или загрузка существующей сессии
- Отправка промптов и получение потоковых ответов через polling
- Агрегация ответов до получения финального результата
Пример запуска
bash(
command: "opencode acp",
background: true,
workdir: "/path/to/project"
)
Сохраните sessionId — он потребуется для всех последующих операций.
Основы протокола
- Все сообщения используют JSON-RPC 2.0
- Каждое сообщение заканчивается символом новой строки
- Используется последовательный счетчик messageId
Пошаговый workflow
Шаг 1: Инициализация
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"protocolVersion":1}}
Шаг 2: Создание или загрузка сессии
Выберите существующую сессию или создайте новую рабочую среду.
Шаг 3: Отправка запросов
Передавайте команды через JSON-RPC и отслеживайте ответы.
Шаг 4: Получение ответов
Используйте polling каждые 2 секунды для получения потоковых обновлений.
Обновление OpenCode
Навык поддерживает автоматическое обновление OpenCode путем сравнения текущей версии с последней доступной и перезапуска процесса.
function updateOpenCode():
current = bash("opencode --version")
latest = webfetch(".../releases/latest")
if latest > current:
process.kill(...)
bash("opencode acp", background: true)
Важные замечания
- Сессии сохраняются и могут быть восстановлены после перезапуска
- OpenCode автоматически обновляется при запуске
- История диалогов не теряется и хранится на стороне сервера
Структура данных
| Поле | Описание |
|---|---|
| processSessionId | ID фонового процесса |
| opencodeSessionId | ID сессии диалога |
| messageId | Счетчик сообщений |
| stopReason | Причина завершения |
| protocolVersion | Версия протокола |
Файл из источника