Свой пакет
Когда делать пакет, а когда MCP-сервер, и три пути создать пакет: в Студии, из IDE и архивом. Короткая точка входа в разработку пакетов.
Пакет или MCP-сервер
| Пакет EVA | MCP-сервер | |
|---|---|---|
| Язык | JavaScript | Любой |
| Где работает | Внутри EVA, в Package-pool | Отдельный сервис |
| Деплой | Публикация из Студии или загрузка ZIP | Свой образ и инфраструктура |
| Настройки и секреты | Объявляются в манифесте, хранит EVA | Свои |
| Виджеты | Да, у фоновых сервисов | Нет |
| Доступ к файлам пространства | Напрямую | Только по ссылкам |
| Работает в Desktop | Да, пакет скачивается на компьютер | Через облачный шлюз или локально |
| Когда выбирать | Интеграция с API системы, автоматизация, виджеты | Тяжёлые вычисления, другой стек, общий сервис для многих клиентов |
Три пути
В Студии
Создайте навык или фоновый сервис, опишите задачу ИИ-помощнику, проверьте и опубликуйте.
Из IDE
Подключите MCP eva-packages в локальной EVA и пишите код в своём редакторе.
Архивом
Соберите пакет с package.json и кодом и загрузите ZIP в Админ → Пакеты.
Минимальный пакет навыков
json
{
"name": "hello-skills",
"version": "1.0.0",
"type": "module",
"main": "index.js",
"dependencies": { "@eva/skill-sdk": "*" },
"eva": {
"kind": "skills",
"title": "Hello",
"description": "Пример навыка",
"scopes": ["chat", "agent"],
"tools": [
{
"name": "greet",
"title": "Поприветствовать",
"description": "Возвращает приветствие по имени",
"inputSchema": {
"type": "object",
"properties": { "name": { "type": "string", "description": "Имя" } },
"required": ["name"]
}
}
]
}
}js
import { defineSkill } from '@eva/skill-sdk';
export default defineSkill({
greet: async ({ name }) => ({ text: `Привет, ${name}!` }),
});Подробно о манифесте, настройках и SDK: Пакеты навыков, Фоновые сервисы, SDK.