Простой Go‑агент, работающий с локальной LLM через ollama.
- Установлен
ollama(см. инструкции на сайтеhttps://ollama.com) - Go 1.22+ (или совместимая версия из
go.mod)
-
Загрузите и запустите модель:
ollama run deepseek-r1:8b
При первом запуске
ollamaскачает образ модели, это может занять несколько минут. -
Убедитесь, что
ollamaзапущен (демон должен работать, как правило он стартует автоматически после первой командыollama run).
В отдельном терминале из корня репозитория выполните:
go run main.goПосле этого можно взаимодействовать с агентом (см. логи/подсказки в консоли или дополнительную документацию, если она появится позже).
- Запустить LLM через ollama:
ollama run deepseek-r1:8b
- Запустить приложение:
go run main.go
- Тестировать и изменять код:
- Вносите правки в
main.goи файлы в папкеinternal/. - Перезапускайте
go run main.goдля проверки изменений.
- Вносите правки в
# Запуск всех тестов
go test ./...
# Запуск с подробным выводом
go test ./... -v
# Запуск с отчётом о покрытии
go test ./... -cover
# Покрытие по пакетам (текущее):
# - internal/model: 100%
# - internal/session: 85.7%
# - internal/config: 52.9%
# - internal/chat: 22.9%agent/
├── main.go # Точка входа
├── internal/
│ ├── chat/ # Логика чата с LLM
│ │ ├── chat.go
│ │ └── chat_test.go
│ ├── config/ # Конфигурация из .env
│ │ ├── config.go
│ │ └── config_test.go
│ ├── errors/ # Кастомные ошибки
│ │ └── errors.go
│ ├── model/ # Модели данных
│ │ ├── message.go
│ │ └── message_test.go
│ └── session/ # Управление сессиями
│ ├── session.go
│ └── session_test.go
└── chats/ # Сохранённые чаты (JSON)