1C1С Агент OneC

SDK разработчика плагинов

Расширьте 1С Агент OneC своими модулями. Плагин — это маленький исполняемый файл, который агент запускает по защищённому протоколу. Новый плагин на Go — около 150 строк кода. Опубликуйте его в маркетплейсе и получайте выплаты с разделением выручки в вашу пользу.

Быстрый стартМаркетплейс

Что такое плагин

Плагин — отдельный исполняемый файл (нативный Go, кросс-платформенный) рядом с агентом. Агент общается с ним по строкам JSON-RPC через stdin/stdout. Плагин объявляет команды в манифесте plugin.json; агент показывает их в админ-панели и даёт вызывать из браузера, из ИИ-Помощника и из других плагинов — с аудитом каждого вызова по приказу ФСТЭК-117.

📦

Манифест

Один файл plugin.json описывает имя, версию, команды, параметры и категорию данных.

🔌

Простой протокол

JSON-RPC по строкам через stdin/stdout. Никаких сетевых портов, никаких сервисов.

🔐

Песочница прав

Каждая команда помечена категорией данных; мутации — под подтверждением; всё в аудит-журнал.

🖥

Кросс-платформенность

Поле platforms в манифесте: windows / linux / darwin. Один SDK на все ОС.

🌊

Потоковый прогресс

SendPartial — отдавать промежуточные результаты долгих операций без блокировки.

🧩

Межплагинные вызовы

Плагин может вызвать команду другого плагина через агента (по белому списку).

Структура плагина

my-plugin/ ├── plugin.json # манифест: имя, версия, команды, параметры ├── main.go # точка входа на Go SDK ├── go.mod └── my-plugin.exe # собранный бинарь (GOOS=windows GOARCH=amd64)

Манифест plugin.json

Обязательны: name (совпадает с именем каталога), version, entrypoint (относительный путь, без ..), mode (oneshot или persistent) и хотя бы одна команда. Каждая команда указывает data_category: open / internal / confidential / restricted.

{ "name": "my-plugin", "version": "0.1.0", "description": "Что делает плагин — одна строка.", "author": "Ваша команда", "entrypoint": "my-plugin.exe", "runtime": "native", "mode": "oneshot", "timeout_sec": 30, "platforms": ["windows", "linux", "darwin"], "commands": [ { "name": "greet", "description": "Возвращает приветствие.", "data_category": "open", "params": { "who": { "type": "string", "default": "world", "description": "Кого приветствовать" } } } ] }

Протокол: handshake → exec

При запуске persistent-плагина агент проводит рукопожатие $plugin.handshake, передавая свой список возможностей; плагин отвечает своим и вычисляет пересечение (capability-модель). Дальше каждая команда — один запрос (stdin) и один терминирующий ответ (stdout). Oneshot-плагин читает один запрос и завершается.

# запрос (stdin): {"id":"req-1","method":"greet","params":{"who":"Василий"}} # ответ (stdout): {"id":"req-1","ok":true,"result":{"greeting":"Привет, Василий"}} # промежуточный кадр прогресса (опционально, до финального): {"id":"req-1","partial":{"done":40,"total":100}}

Быстрый старт — Go SDK

Минимальный плагин — около 15 строк. SDK берёт на себя протокол, рукопожатие, потоковый прогресс, восстановление после паники и хелперы (PowerShell с UTF-8, контекст агента, форензическая stream-сессия).

package main import "github.com/neuralgate/onec-plugin-sdk" func main() { p := onecplugin.New() p.Register("greet", func(req *onecplugin.Request) onecplugin.Response { who, _ := req.Params["who"].(string) if who == "" { who = "world" } return onecplugin.OK(map[string]any{"greeting": "Привет, " + who}) }) p.Run() }

Сборка: GOOS=windows GOARCH=amd64 go build -o my-plugin.exe . (на Apple Silicon обязательно указывайте GOARCH=amd64 — иначе соберётся arm64, и агент откажется грузить плагин).

Безопасность и категории данных

Публикация в маркетплейс

Три класса плагинов: бесплатные (ядро, для массового распространения), премиум (открываются по тарифу Корпоративный) и маркетплейс — платные дополнения, в том числе от сторонних авторов, с разделением выручки 70/30 в пользу автора.

  1. Напишите и протестируйте плагин на своей машине (Windows / Linux / macOS).
  2. Подайте плагин на ревью — мы проверяем безопасность (плагин исполняется с правами агента) и соответствие манифеста.
  3. После ревью мы подписываем пакет (целостность + привязка к автору) и публикуем в каталоге с ценой.
  4. Покупка выдаёт аккаунту/машине подписанное сервером право доступа (entitlement); агент проверяет его при запуске команды.
  5. Выплаты — разделение выручки 70/30 (автор/площадка).

Готовые примеры

Изучите рабочие плагины из каталога — от простого hello до форензических. Все доступны в репозитории как образцы для копирования.

🛡 Управление Defender🔋 Электропитание📦 Установленное ПО⚙ Службы Windows🗂 Реестр Windows📋 Журналы событий⏰ Планировщик задач🌐 Сеть🔎 osquery (SQL к ОС)🗃 Индекс файловой системы🖱 Автоматизация интерфейса🗜 Чтение 7z🗜 Чтение RAR🔍 Поиск по содержимому💽 Чтение сырых ФС и образов🔐 DPAPI master-key🧰 RE-инструменты🏛 Active Directory🧠 Форензика памяти🔌 Драйверы🔒 BitLocker🖥 Hyper-V📜 Групповые политики🧷 Сбор артефактов

Дальше

Полный гайд по SDK — структура, контракт хоста плагинов, тестирование, кросс-платформенность, безопасность — в документации репозитория (docs/plugin-sdk.md).

Опубликовать плагинКаталог плагинов
Разработано в экосистеме НейроГейт
Один аккаунт и единый баланс — на все продукты экосистемы.
🧠НейроГейтРоссийский ИИ-шлюз и единый баланс экосистемы💬НейроГейт ЧатКомандный чат с ИИ🔎BizIQПроверка контрагентов: 36,77 млн ЮЛ и ИП🗺️НейроГИСГеоданные и пространственная аналитика🔐PortaЗашифрованный мессенджер, звонки и передача файлов
партнёр · построено на НейроГейт