Skip to main content
Пакет содержит логику Xneon Agent: инструменты управления лаунчером, состояние чатов, цикл вызовов модели, вопросы пользователю, подтверждения действий, подготовку контекста и адаптеры AI-протоколов. Пакет не импортирует React, Electron или SQLite. Доступ к приложению передаётся через AgentHost. При этом runtime ориентирован на среду лаунчера: ему нужен реализованный ElectronAPI, а не только HTTP-ключ провайдера. Это не универсальный автономный SDK для любой программы.
Документ описывает текущие исходники лаунчера 1.0.7. Отдельная пользовательская инструкция: Xneon AI.
Версия пакета в текущих исходниках: 1.0.0. Лицензия пакета: MIT.

Установка и форматы

В монорепозитории зависимость подключена как 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.

Чаты и выполнение запроса

Host и конфигурация модели должны быть подключены заранее. Интерфейс обязан обрабатывать вопросы и подтверждения: соответствующее ожидание не завершается само собой.
Состояние содержит 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. Точное количество зависит от текущей версии исходников — фиксированное число в документации быстро устаревает.
Прямой вызов tool.run обходит управление подтверждениями runtime. Для пользовательского агента запускайте полный цикл runtime либо реализуйте эквивалентную проверку действий в своём приложении.

Модели, провайдеры и контекст

Реализованы протоколы openai, anthropic, gemini, ollama. Адаптеры формируют запросы соответствующего формата; реальная поддержка вызовов инструментов и изображений зависит от выбранной модели и сервера. Настройки модели содержат id, contextWindow и supportsImages. Задавайте реальный размер окна модели: значение по умолчанию runtime не является гарантией возможностей провайдера. История включает сообщения, результаты инструментов, вложения и служебные данные. Runtime учитывает доступную статистику провайдера и приблизительные оценки, резервирует место для ответа и при необходимости сжимает историю. Индикатор контекста не равен точному счёту списанных денег или токенов. Изображения передаются в формате выбранного протокола. Если поддержка изображений у модели выключена, отправка новых изображений блокируется. Требования к файлам интерфейса приведены в пользовательском руководстве. Транспорт и ключ провайдера обслуживает приложение в electron/main/ai-agent.ts и electron/main/agent-workspace.ts. Отдельные функции providers подготавливают данные запроса и ответа; они не заменяют host и хранилище чатов.

Разработка

Каталог IPC обновляется скриптом scripts/gen-agent-ipc-catalog.mjs, в том числе перед dev/build/package. Изменение API требует обновления контрактов, bridge и каталога. Подробности границ процессов: архитектура модулей.

Исходники