Run AI agents in local

ollama + hermes + docker

Prerequisites:

⚠️ tested only on Kubuntu

Create a makefile file with the followed code and run the commands : make agent-install first time and make agent after if you want to start your agent.

# 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)