AgentHost. При этом runtime ориентирован на среду лаунчера: ему нужен реализованный ElectronAPI, а не только HTTP-ключ провайдера. Это не универсальный автономный SDK для любой программы.
Документ описывает текущие исходники лаунчера 1.0.7. Отдельная пользовательская инструкция: Xneon AI.
Установка и форматы
В монорепозитории зависимость подключена какworkspace:*:
@xnlc, затем установите пакет:
.npmrc
Прямая зависимость пакета —
@xnlc/types. Список установленных сторонних библиотек приложения не является зависимостями самого агента.
Точки входа
Подключение AgentHost
ВызовитеconfigureAgentHost до инициализации runtime или выполнения инструментов. Host хранится на уровне экземпляра модуля; API создания независимого runtime для каждого чата здесь нет.
Host передаёт:
Следующий пример принимает уже реализованный host; он не создаёт заглушки API:
components/launcher/agent/host.ts; React-подписка — в components/launcher/agent/store.ts.
Чаты и выполнение запроса
Состояние содержит
running, stopping, error, текущий чат, список чатов, ожидаемые вопрос и подтверждение. Хранение выполняется методами host API в main. Незавершённые вызовы после перезапуска помечаются прерванными и не запускаются повторно автоматически.
Режимы и категории действий
AgentChat.mode принимает три значения: questions, confirm, auto. В режиме questions runtime передаёт только инструменты категории read, исключая ask_user и update_plan, и повторно блокирует изменяющие действия перед выполнением.
Разблокировка защищённой сборки имеет отдельный интерактивный запрос и нужна также в автономном режиме. Отказ действует в пределах текущего хода. Остановка прерывает дальнейшие действия и текущий запрос, но не откатывает уже выполненные установки или изменения.
Инструменты и группы
КаждыйAgentTool содержит имя, категорию risk, схему fields, протокольную декларацию spec, обработчик run и необязательную группу.
parseToolInput проверяет JSON, допустимые имена полей, типы, длины, варианты enum, целочисленные числа и ограничения массивов. TypeScript-типы не заменяют эту проверку входящих аргументов модели.
Не все инструменты отправляются в каждый запрос. Модель получает навигацию по каталогу и подключает тематические группы. getAgentTurnTools собирает схемы с бюджетом до 128 инструментов и 24 000 символов деклараций. Бюджет может вытеснить ранее подключённую группу; при необходимости её подключают снова.
Основные области: сборки, версии, контент Modrinth/CurseForge/FTB, файлы сборок, серверы, миры, настройки, темы, скины, облако, статистика, новости и общий каталог IPC. Точное количество зависит от текущей версии исходников — фиксированное число в документации быстро устаревает.
Модели, провайдеры и контекст
Реализованы протоколыopenai, anthropic, gemini, ollama. Адаптеры формируют запросы соответствующего формата; реальная поддержка вызовов инструментов и изображений зависит от выбранной модели и сервера.
Настройки модели содержат id, contextWindow и supportsImages. Задавайте реальный размер окна модели: значение по умолчанию runtime не является гарантией возможностей провайдера.
История включает сообщения, результаты инструментов, вложения и служебные данные. Runtime учитывает доступную статистику провайдера и приблизительные оценки, резервирует место для ответа и при необходимости сжимает историю. Индикатор контекста не равен точному счёту списанных денег или токенов.
Изображения передаются в формате выбранного протокола. Если поддержка изображений у модели выключена, отправка новых изображений блокируется. Требования к файлам интерфейса приведены в пользовательском руководстве.
Транспорт и ключ провайдера обслуживает приложение в electron/main/ai-agent.ts и electron/main/agent-workspace.ts. Отдельные функции providers подготавливают данные запроса и ответа; они не заменяют host и хранилище чатов.
Разработка
scripts/gen-agent-ipc-catalog.mjs, в том числе перед dev/build/package. Изменение API требует обновления контрактов, bridge и каталога. Подробности границ процессов: архитектура модулей.