Это Go версия умного Linux Shell агента, который преобразует запросы на естественном языке в команды Linux с использованием локальной LLM модели через Ollama.
- 🤖 Преобразование естественного языка в команды Linux
- 🎯 Выбор модели из доступных в Ollama при старте
- 📚 Контекстная память (последние 30 команд)
- ⚡ Интерактивный режим с подтверждением выполнения
- 🔄 Смена модели во время работы
- 🔒 Безопасное выполнение с запросом разрешения
- Go 1.21+
- 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# Компиляция и запуск
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-agentmake uninstallmake 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- выход из программы
- ShellAgent - основная структура агента
- CommandHistory - история выполненных команд
- Ollama API клиент - интеграция с LLM и управление моделями
- Model selector - выбор и смена моделей
- 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
curl http://localhost:11434/api/tags
# Если не отвечает, запустите сервер
ollama serve# Установите хотя бы одну модель
ollama pull qwen2.5-coder:3b