Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Умный Linux Shell Агент (Go версия)

Это Go версия умного Linux Shell агента, который преобразует запросы на естественном языке в команды Linux с использованием локальной LLM модели через Ollama.

Возможности

  • 🤖 Преобразование естественного языка в команды Linux
  • 🎯 Выбор модели из доступных в Ollama при старте
  • 📚 Контекстная память (последние 30 команд)
  • ⚡ Интерактивный режим с подтверждением выполнения
  • 🔄 Смена модели во время работы
  • 🔒 Безопасное выполнение с запросом разрешения

Требования

  1. Go 1.21+
  2. Ollama с любой установленной моделью (программа покажет список доступных)

Установка и запуск

1. Установка Ollama и моделей

# Установка Ollama (если не установлен)
curl -fsSL https://ollama.ai/install.sh | sh

# Загрузка рекомендуемых моделей
ollama pull qwen2.5-coder:3b    # Быстрая модель для кода
ollama pull llama3.2:3b         # Универсальная модель
ollama pull codellama:7b        # Более мощная модель для кода

# Запуск Ollama сервера
ollama serve

2. Сборка и установка

Быстрый запуск

# Компиляция и запуск
go run main.go

# Или через Make
make run

Сборка исполняемого файла

# Сборка
make build
./shell-agent

# Или напрямую через Go
go build -o shell-agent main.go
./shell-agent

Установка в систему

# Установка в /usr/local/bin (требует sudo)
make install

# После установки можно запускать из любой директории
shell-agent

Удаление из системы

make uninstall

3. Доступные Make команды

make help          # Показать все доступные команды
make build         # Собрать проект
make run           # Собрать и запустить
make clean         # Очистить собранные файлы
make test          # Запустить тесты
make fmt           # Форматировать код
make vet           # Проверить код
make deps          # Обновить зависимости
make build-all     # Собрать для всех платформ
make install       # Установить в систему
make uninstall     # Удалить из системы

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

Выбор модели при запуске

При первом запуске программа покажет список доступных моделей:

🔍 Получаю список доступных моделей...

📋 Доступные модели:
============================================================
1. qwen2.5-coder:3b (1.9 GB)
2. llama3.2:3b (2.0 GB)
3. codellama:7b (3.8 GB)
============================================================
Выберите модель (1-3): 1
✅ Выбрана модель: qwen2.5-coder:3b

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

После выбора модели вводите запросы на естественном языке:

👤 Ваш запрос: покажи файлы в текущей папке
💡 Предлагаемая команда: ls -la
❓ Выполнить эту команду? (да/нет/d/n): да

Примеры запросов

  • "покажи файлы в текущей папке"
  • "кто я в системе"
  • "информация о системе"
  • "создай файл test.txt"
  • "покажи содержимое файла" (после создания)
  • "сколько свободной памяти"
  • "найди все .go файлы"

Специальные команды

  • история - показать историю выполненных команд
  • очистить историю - очистить контекст
  • сменить модель - выбрать другую модель без перезапуска
  • exit - выход из программы

Архитектура

Основные компоненты

  1. ShellAgent - основная структура агента
  2. CommandHistory - история выполненных команд
  3. Ollama API клиент - интеграция с LLM и управление моделями
  4. Model selector - выбор и смена моделей
  5. Shell executor - безопасное выполнение команд

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

  • Все команды требуют подтверждения пользователя
  • Таймаут выполнения команд (60 секунд)
  • Ограничение истории команд (30 последних)
  • Изолированное выполнение через bash -c
  • Проверка доступности Ollama при запуске

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

По умолчанию используется:

  • Ollama URL: http://localhost:11434
  • Модель: выбирается пользователем из доступных
  • Таймаут: 60 секунд
  • Максимум истории: 30 команд

Для изменения параметров отредактируйте константы в NewShellAgent().

Рекомендуемые модели

  • qwen2.5-coder:3b - быстрая и эффективная для команд Linux
  • llama3.2:3b - универсальная модель с хорошим пониманием
  • codellama:7b - более мощная для сложных задач (требует больше ресурсов)

Устранение неполадок

Ollama недоступен

# Проверьте, запущен ли Ollama
curl http://localhost:11434/api/tags

# Если не отвечает, запустите сервер
ollama serve

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

# Установите хотя бы одну модель
ollama pull qwen2.5-coder:3b

Contributors

Languages