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

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

Новости

Что происходит
с проектом

Короткие записи о решениях и находках. Не анонсы, а то, что реально произошло и повлияло на код.

витрина

Витрина стала двуязычной

Сайт пересобран из одной страницы в девять, на русском и английском. Содержимое лежит в JSON по локалям, сборка валит себя, если локали разошлись по ключам: страница с половиной непереведённого выглядит рабочей, и замечает её посетитель.

цифры

Тесты пересчитаны по коду

910 тестов: 639 в ядре и 271 в коннекторах. Прошлая витрина показывала 905, README до сих пор пишет 737. Цифру на публичной странице берём из кода, а не из соседнего документа.

имя

Агент для человека называется CapyAgent

Внутри платформа остаётся InterClaw: пути, переменные окружения, юнит службы и модуль Go. Смена внутренних имён ломает каждую существующую установку, и чинится это миграцией, а миграция у клиента - отдельная работа с отдельным риском.

Репозиторий

браузер

Локальный браузер проверен на настоящем Chromium

Действия в браузере разрешены только на площадках из списка, только с подтверждением и только по ссылке из снимка. Перед нажатием коннектор сверяет надпись с живой страницей: подтверждали одно, нажимается ровно оно.

аудит

Проверки на то, что написанное подключено

За три дня одиннадцать раз повторилось одно: код написан, покрыт тестами, зелёный в CI - и вызвать его некому. Дважды это оказалось внутри задач, помеченных готовыми. Теперь make check-wiring валит сборку, а не пишет предупреждение в список, который читают до первого раза.

безопасность

Аудит закрыл 21 находку

Самое дорогое: у команды /вызов была отдельная дорога в коннектор мимо списка запретов, выключенных инструментов и подтверждений. Закрыто. У исполнения появился исход в журнале: след с согласием и без исхода не отвечает на единственный важный вопрос - успело ли оно случиться.

служба

Ядро работает службой на боевом сервере

Задачи по расписанию выполняет агент, отказ основного провайдера модели переключает на запасной. Падение канала теперь валит процесс: раньше служба числилась активной, а бот молчал сутками, и узнавали об этом от клиента.

сверка

Сверка с тремя чужими ядрами

Hermes, OpenClaw и GoClaw разобраны после того, как своя версия была написана, а не до. Сравнение до работы даёт копию, сравнение после показывает, что упустил. Нашлось три места, где нагрузка выбивала диалог.

решение

Делаем своё ядро, а не форк

Форк любого из трёх означает вечную гонку за апстримом: соседние ядра пушат ежедневно. Язык ядра Go - из-за памяти и из-за поставки клиенту одним бинарником. Коннекторы вне ядра отдельными MCP-серверами: они переживут смену ядра, и это и есть продукт.

Хотите получать это письмом?

Рассылки пока нет. Напишите нам, и мы позовём, когда появится что-то стоящее вашего внимания.