makefile

ollama + hermes + docker
Run AI agents in local
# current model
AGENT_MODEL = glm-4.7-flash
# persistent data directory
AGENT_DIR = ./llm-agent
# container name
AGENT_CONTAINER = my-agent
# models by GPU: https://www.morphllm.com/best-ollama-models#vram-cheat-sheet
# all models: https://ollama.com/search?c=cloud
# example:
# - qwen3-coder (18Gb VRAM)
# - glm-4.7-flash (24Gb RAM/VRAM/unified)
agent-install: ## Install local AI agent
@mkdir -p $(AGENT_DIR)/ollama
@mkdir -p $(AGENT_DIR)/hermes
@docker run -d \
--gpus=all \
-v $(AGENT_DIR)/ollama:/root/.ollama \
-v $(AGENT_DIR)/hermes:/root/.hermes\
-v $(shell pwd):/home/ubuntu/project \
--name $(AGENT_CONTAINER) \
ollama/ollama
@until docker exec $(AGENT_CONTAINER) ollama list > /dev/null 2>&1; do sleep 1; done
@echo "✅ ollama installed"
@docker exec $(AGENT_CONTAINER) ollama pull $(AGENT_MODEL)
@until docker exec $(AGENT_CONTAINER) ollama list > /dev/null 2>&1; do sleep 1; done
@echo "✅ model $(AGENT_MODEL) installed"
@docker exec $(AGENT_CONTAINER) apt update
@docker exec $(AGENT_CONTAINER) apt install curl git xz-utils -y
@echo "✅ hermes dependencies installed"
@-docker exec $(AGENT_CONTAINER) ollama launch hermes --model $(AGENT_MODEL) -y
@docker exec $(AGENT_CONTAINER) /bin/bash -c "/root/.local/bin/hermes config set terminal.cwd /home/ubuntu/project"
@echo "✅ hermes project configured"
@docker exec -it $(AGENT_CONTAINER) ollama launch hermes --model $(AGENT_MODEL) -y
@docker stop $(AGENT_CONTAINER)
agent: ## Run local AI agent
@-docker start $(AGENT_CONTAINER)
@-docker exec -it $(AGENT_CONTAINER) ollama launch hermes --model $(AGENT_MODEL) -y
@-docker stop $(AGENT_CONTAINER)
agent-uninstall: ## Unistall all files but keep the image
@-docker stop $(AGENT_CONTAINER)
@-docker rm $(AGENT_CONTAINER)