К содержимому

CapyAgent агент, который ходит в ваши рабочие системы сам. Ядро на Go, коннекторы на Python, данные остаются у вас.

Быстрый старт

От нуля
до первого ответа

Пятнадцать минут на машине с Linux. В конце у вас работающий агент, один подключённый коннектор и открытая страница чата.

Перед началом

Что нужно иметь

  • Linux. Основная площадка, всё проверялось на ней. Про Windows и остальное - на странице установки.
  • Go 1.26 или новее. Нужен только для сборки бинарника.
  • Python 3.12 или новее. Коннекторы работают на стандартной библиотеке, ставить пакеты не нужно.
  • Ключ к модели. MiMo, любой OpenAI-совместимый API, YandexGPT или GigaChat.
  • Доступ хотя бы к одной системе. Для первого прогона хватит вебхука Битрикс24 или токена Директа.
Модели нужен контекст от 64 000 токенов. У MiMo дополнительно есть пол по max_tokens в 8192: меньше обрывает ответ на середине.

Шаги

Три шага до разговора

01

Собрать

Клонируете репозиторий и собираете бинарник. make build кладёт его в bin/interclaw, зависимостей тянуть не нужно.

02

Настроить

interclaw setup спрашивает провайдера модели, ключ и канал. Всё записывается в файл окружения с правами 600, а не в аргументы процесса.

03

Запустить

interclaw serve поднимает локальный HTTP на 127.0.0.1 и запускает настроенные каналы. Страница чата открывается по тому же адресу.

Команды

Всё то же самое строкой

bash
# 1. собрать$ git clone https://github.com/nobi-k/interclaw && cd interclaw$ make build # 2. настроить модель и канал$ ./bin/interclaw setupпровайдер модели: mimo | openai | yandexgpt | gigachatканал: telegram | discord | bitrix24 | только веб # 3. проверить коннектор до запуска$ ./bin/interclaw connector tools -- python3 connectors/bitrix24/server.pycrm_discover_portal, crm_fields, crm_list, crm_smart_process, ... # 4. запустить$ ./bin/interclaw serveслушаю 127.0.0.1:8790, канал telegram живой

Шаг 3 стоит отдельно не случайно: коннектор, который не отвечает на tools/list, не заработает и внутри агента. Проверить его в одну команду дешевле, чем искать причину в журнале службы.

Первый разговор

Что спросить, чтобы сразу увидеть суть

Хороший первый вопрос это не «привет», а разведка. Агент покажет, что он умеет узнать про ваш аккаунт, и станет видно, где данных не хватает.

  • «Что у меня настроено в Битриксе: какие воронки, стадии и обязательные поля?»
  • «Сколько заявок пришло за последнюю неделю и из каких источников?»
  • «Сверь, сколько сделок портал заявил и сколько реально отдал.»
  • «Каждый понедельник в 9:00 присылай это же в Telegram.»
Последняя фраза ставит задание в расписание. Проверить, что оно записалось, можно командой interclaw schedule list: задание, которое агент подтвердил словами, но не записал, выглядит одинаково с записанным - до понедельника.

Дальше

Куда идти после первого ответа

  • Поставить службой, чтобы расписание работало без открытого терминала: docs/личная-обкатка.md.
  • Подключить остальные системы: каталог коннекторов в docs/connectors/README.md.
  • Ограничить опасное: список инструментов с подтверждением и площадок для действий в браузере, docs/безопасность.md.
  • Добавить свой навык: формат SKILL.md и манифест плагина описаны на странице навыков.

Если не пошло

Частые заминки

Канал запустился, но бот молчит
Признак жизни это время последнего успешного обмена, а не флаг «запущен». Опрос, переставший получать ответы, оставляет процесс живым и журнал чистым. Смотрите время последнего обмена в статусе, а не строку «активен».
Telegram не подключается из России
Нужен SOCKS5. Прокси задаётся переменной окружения, ядро само им не пользуется без явного указания.
Коннектор запускается, но инструментов ноль
Чаще всего не переданы его переменные окружения. Каждому коннектору отдаются только свои, и без них он честно отвечает пустым списком вместо того, чтобы падать.
Модель обрывает ответ на середине
Проверьте max_tokens. У MiMo пол 8192, ниже него ответ обрезается. Результат инструмента при этом ограничен долей окна модели, и обрезка помечается явно, чтобы модель не выдумывала остаток.
Служба числится активной, а работы нет
Раньше падение канала не валило процесс, и служба выглядела живой сутками. Теперь выход с ненулевым кодом, systemd поднимает заново. Если видите обратное, значит собран старый бинарник.

Получилось?

Расскажите, что хотите автоматизировать дальше. Или посмотрите, что менялось в последних выпусках.