JSPM

  • Created
  • Published
  • 0
  • Score
    100M100P100Q40317F
  • License MIT

AI Agent with streaming execution and Docker sandbox

Package Exports

  • sagent-ai
  • sagent-ai/src/agent.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (sagent-ai) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Super Agent 🤖

AI агент с потоковым выполнением команд и Docker песочницей для безопасного выполнения.

🚀 Возможности

  • Потоковое выполнение - команды выполняются во время генерации ответа AI
  • Docker песочница - безопасное изолированное выполнение команд
  • Компактный формат - специальный § формат для экономии токенов (5-6x)
  • OpenRouter API - поддержка множества моделей AI
  • Итеративное выполнение - автоматические попытки при ошибках
  • Контекстуальная память - сохранение истории и активных файлов

📋 Требования

  • Node.js 14+
  • Docker (WSL2 на Windows)
  • OpenRouter API ключ

🔧 Установка

  1. Клонируйте репозиторий:
git clone https://github.com/your-username/super-agent2.git
cd super-agent2
  1. Установите зависимости:
npm install
  1. Настройте Docker (для Windows через WSL2):
# В WSL2 Ubuntu
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
  1. Скопируйте и настройте .env:
cp .env.example .env
# Добавьте ваш OPENROUTER_API_KEY

🎮 Использование

Интерактивный режим

npm start

Пример взаимодействия

🤖 Super Agent v1.0.0
💬 Введите задачу или "exit" для выхода

Задача> Создать Express сервер с API для управления задачами
Цель> Работающий REST API с CRUD операциями для задач

🔄 1:
⚙️ Выполнение: §💻 npm init -y...
⚙️ Выполнение: §💻 npm install express...
⚙️ Выполнение: §📝 server.js...
⚙️ Выполнение: §💻 node server.js...

✅ Задача выполнена успешно!

Просмотр доступных моделей

npm run models

🤝 § Формат команд

Агент использует специальный формат для команд:

  • §📖file.js - прочитать файл
  • §📝file.js - создать файл
  • §✏️file.js - редактировать файл
  • §💻command - выполнить shell команду
  • §✅ - задача выполнена
  • §❌reason - задача провалена
  • §❓question - вопрос к пользователю

🔒 Безопасность

Все команды выполняются в изолированном Docker контейнере:

  • Доступ только к папке проекта
  • Ограничение ресурсов (1GB RAM, 50% CPU)
  • Выполнение от непривилегированного пользователя
  • Таймаут 30 секунд на команду
  • Фильтрация опасных команд

⚙️ Конфигурация

.env файл:

# OpenRouter API
OPENROUTER_API_KEY=your_key_here

# Модель AI
AI_MODEL=x-ai/grok-4-fast:free

# Параметры генерации
TEMPERATURE_STAGE1=0.5
TEMPERATURE_STAGE2=0.6
MAX_TOKENS=20000
REASONING_ENABLED=true
REASONING_EFFORT=high

# Настройки агента
DEBUG=true
MAX_ITERATIONS=16
TIMEOUT_MS=60000
MEMORY_TASKS=20

📁 Структура проекта

super-agent2/
├── src/
│   ├── agent.js           # Главный класс агента
│   ├── openrouter-client.js # Клиент для OpenRouter API
│   └── docker-executor.js  # Docker песочница
├── prompts/
│   └── system.txt         # Системный промпт
├── scripts/
│   └── list-models.js     # Список доступных моделей
├── docs/
│   ├── AGENT_FORMAT.md    # Документация § формата
│   ├── AI_REQUEST_FORMAT.md # Формат запросов к AI
│   ├── DOCKER_SANDBOX.md  # Docker песочница
│   └── AI_AGENT_ARCHITECTURE.md # Архитектура
├── .env                   # Конфигурация
├── package.json           # Зависимости
└── README.md             # Этот файл

🏗️ Архитектура

User Input → Agent → OpenRouter API
                ↓
          Stream Response
                ↓
        Command Detection
                ↓
         Docker Sandbox
                ↓
        Execute & Continue

📊 Производительность

  • Потоковое выполнение: 5-7 секунд вместо 15
  • Экономия токенов: 5-6x меньше благодаря § формату
  • Параллельность: команды выполняются во время генерации

🐛 Отладка

Включите DEBUG в .env для подробных логов:

DEBUG=true

📄 Лицензия

MIT

👥 Вклад

Pull requests приветствуются!