modern-garden-55994
08/13/2026, 9:58 PMlimited-student-10747
08/13/2026, 10:05 PMmodern-garden-55994
08/13/2026, 10:26 PMlimited-student-10747
08/13/2026, 10:27 PMlimited-student-10747
08/13/2026, 10:28 PMmodern-garden-55994
08/13/2026, 10:28 PMmodern-garden-55994
08/13/2026, 10:30 PMmodern-garden-55994
08/13/2026, 10:31 PMmodern-garden-55994
08/13/2026, 10:33 PMlimited-student-10747
08/13/2026, 10:38 PMmodern-garden-55994
08/13/2026, 10:45 PMlimited-student-10747
08/13/2026, 10:47 PMmodern-garden-55994
08/13/2026, 10:55 PMmodern-garden-55994
08/13/2026, 11:24 PMmodern-garden-55994
08/14/2026, 1:26 PMlimited-student-10747
08/14/2026, 1:31 PMmodern-garden-55994
08/14/2026, 1:50 PMlimited-student-10747
08/14/2026, 1:54 PMOK, got it. This might be easier for us to reproduce if we can get step-by-step instructions for how to run the program the same way you did.But you did not give me step-by-step instructions. They need to be more concrete than a couple screenshots. If you’re not sure what I’m talking about, take a look at the instructions we have in the openhands docs. You’ll see how they say things like “first, do this, then do this” etc.
modern-garden-55994
08/14/2026, 3:40 PMlimited-student-10747
08/14/2026, 3:53 PMmodern-garden-55994
08/14/2026, 4:23 PMmodern-garden-55994
08/14/2026, 4:23 PMlimited-student-10747
08/14/2026, 5:26 PMmodern-garden-55994
08/14/2026, 7:17 PMservices:
ollama:
container_name: ollama
networks:
- ai-net # change it to match your environment
restart: always
image: "ollama/ollama"
ports:
- "11434:11434"
volumes:
- /volume1/docker/ollama:/root/.ollama # change it to match your environment
environment:
- OLLAMA_HOST=0.0.0.0:11434
- OLLAMA_ORIGINS=*
- OLLAMA_KEEP_ALIVE=-1
- OLLAMA_MODELS=/root/.ollama/models
networks:
ai-net:
external: truelimited-student-10747
08/14/2026, 7:20 PMlimited-student-10747
08/14/2026, 7:21 PMlimited-student-10747
08/14/2026, 7:21 PMmodern-garden-55994
08/14/2026, 7:21 PM# ignored : docker/podman mkdir -p ~/projects ~/.openhands
name: <openhands_agent-canvas>
services:
agent-canvas:
stdin_open: true
tty: true
container_name: agent-canvas
networks:
- ai-net # change it to match your environment
ports:
- 8082:8000 # port 8000 was already taken
volumes:
- /mnt/user/appdata/openhands:/home/openhands/.openhands:rw # change it to match your environment
- /mnt/user/appdata/projects:/projects:rw # change it to match your environment
image: <http://ghcr.io/openhands/agent-canvas:latest|ghcr.io/openhands/agent-canvas:latest>
restart: unless-stopped
networks:
ai-net:
external: truemodern-garden-55994
08/14/2026, 7:25 PMminiature-jordan-81164
08/14/2026, 8:11 PMai-net, Agent Canvas should reach Ollama using the container name—not host.docker.internal or the reverse-proxy address.
In the Agent Canvas LLM settings, please use:
- Provider: Ollama
- Ollama Base URL: <http://ollama:11434>
- Model: the exact model name installed in Ollama, such as llama3.2
- API key: leave empty unless the UI requires one
Please make sure the shared network exists and both containers are connected to it:
bash
docker network create ai-net
docker network inspect ai-net
The docker network inspect output should list both ollama and agent-canvas.
You can also test connectivity directly from the Agent Canvas container:
bash
docker exec -it agent-canvas sh
curl <http://ollama:11434/api/tags>
That should return Ollama’s model list. If it does not, the two containers are not actually sharing the same Docker network.
The ssl:<ssl.SSLContext ...> text in the error does not necessarily mean HTTPS was configured. The main problem is that host.docker.internal resolves to the Docker host/reverse proxy rather than the Ollama container. Use <http://ollama:11434> for direct container-to-container communication.
This response was prepared by an AI agent (OpenHands) on behalf of the user.modern-garden-55994
08/14/2026, 8:33 PMmodern-garden-55994
08/14/2026, 8:35 PMmodern-garden-55994
08/14/2026, 8:36 PMminiature-jordan-81164
08/14/2026, 8:39 PMdocker exec ... curl <http://ollama:11434/api/tags> showed your models, then the Docker networking is working. The remaining problem is the Agent Canvas LLM configuration, not connectivity.
You do not need to select Ollama in the Provider field if that field is unavailable. In the Advanced or All settings view, try configuring:
- Model: ollama/<exact-model-name> (replace this with the name shown by `/api/tags`; for example, ollama/llama3.2)
- Ollama Base URL: <http://ollama:11434>
- Base URL, if that is the only URL field available: <http://ollama:11434>
- API key: leave empty, or use a placeholder only if the form requires a value
The important part is that the model name uses the Ollama provider prefix and the URL is the internal Docker hostname. Do not enter host.docker.internal, your reverse-proxy hostname, or https://.
After saving the settings, start a new conversation so it uses the updated LLM configuration. If the settings page does not expose either Ollama Base URL or Base URL, please share a screenshot of the All settings fields (with any credentials/API keys hidden), along with the exact Agent Canvas image tag/version. Then we can identify which field maps to LiteLLM’s api_base for that version.
This follow-up was prepared by an AI agent (OpenHands) on behalf of the user.modern-garden-55994
08/14/2026, 9:09 PMmodern-garden-55994
08/14/2026, 9:12 PMminiature-jordan-81164
08/14/2026, 9:17 PMbash
curl -s <http://ollama:11434/api/tags>
Use the exact name returned there. curl <http://ollama> is not the model-list endpoint.
Your Ollama Compose file also needs a larger context window. OpenHands’ current local-LLM documentation says the Ollama default of 4096 tokens is too small; use at least 22000, or 32768 if your hardware allows it:
yaml
environment:
- OLLAMA_HOST=0.0.0.0:11434
- OLLAMA_CONTEXT_LENGTH=22000
- OLLAMA_KEEP_ALIVE=-1
- OLLAMA_ORIGINS=*
After changing this, recreate/restart the Ollama container; changing the Compose file alone does not update an existing container.
For Agent Canvas, use:
text
Model: ollama/<exact-name-from-api-tags>
Base URL: <http://ollama:11434>
API key: local-llm
Replace the model placeholder with the exact installed model name. Do not use host.docker.internal, the reverse-proxy hostname, or https://.
The qwen3-v1:8b error—“Your last response did not include a function call or a message”—means the model connected but did not produce a valid OpenHands tool call or assistant message. Small/general models can work for chat but fail at agent tool calling. Try a coding-oriented instruct model instead. The current OpenHands docs recommend `Qwen3.6-35B-A3B`; qwen2.5-coder-14b-instruct is another community-reported option. Use the exact Ollama tag available in your /api/tags output.
The llama3.2 “not suitable for thinking” error is also a model-capability mismatch, not a Docker-network problem. After updating the context length and selecting a suitable coding model, save the settings and start a new conversation.
Current documentation: https://docs.openhands.dev/openhands/usage/llms/local-llms
This response was prepared by an AI agent (OpenHands) on behalf of the user.miniature-jordan-81164
08/14/2026, 9:18 PMmodern-garden-55994
08/14/2026, 9:23 PMcurl -s <http://ollama:11434/api/tags> but it only listed Qwen model and not the other models.modern-garden-55994
08/14/2026, 9:29 PMminiature-jordan-81164
08/14/2026, 9:30 PMcurl <http://ollama:11434/api/tags> returns only Qwen, Agent Canvas is reaching an Ollama instance whose current model store contains only Qwen. This is not an SSL or LiteLLM routing problem.
Please verify the following in Portainer:
1. Open the Ollama container console and run:
bash
ollama list
2. In the Agent Canvas container console, run:
bash
getent hosts ollama
curl -s <http://ollama:11434/api/tags>
3. Compare the two outputs. They should show the same model list.
4. In Ollama’s container settings, check the volume mounted at /root/.ollama. Make sure it is the directory where deepseek-r1:14b-qwen-distill-q4_K_M and the other models were actually downloaded. If the models were downloaded in a different Ollama container or volume, the current container will not see them.
5. Check that there is only one container named/aliased ollama on the shared ai-net network. A stale second Ollama container can make the hostname resolve to the wrong instance.
If ollama list itself shows only Qwen, pull the missing model into this exact container, for example:
bash
ollama pull deepseek-r1:14b-qwen-distill-q4_K_M
Then repeat curl -s <http://ollama:11434/api/tags>.
For Agent Canvas, keep the model field as ollama/<exact name returned by /api/tags> and the base URL as <http://ollama:11434>. Do not add https:// or use the reverse-proxy address.
The Qwen error (“last response did not include a function call or a message”) is a separate model-compatibility issue: the model connected, but it did not emit a valid OpenHands tool call. Once the model list is corrected, test with an instruct/coding model that supports tool use and start a new conversation. The context-length setting can affect long tasks, but it would not explain why /api/tags lists only Qwen.
This response was prepared by an AI agent (OpenHands) on behalf of the user.miniature-jordan-81164
08/14/2026, 9:33 PMbash
OLLAMA_CONTEXT_LENGTH=32768 OLLAMA_HOST=0.0.0.0:11434 OLLAMA_KEEP_ALIVE=-1 ollama serve
ollama pull qwen3.6:35b-a3b
If 32k context is too demanding for your hardware, use at least 22000. In Agent Canvas, use the exact model name returned by /api/tags, prefixed with ollama/, and keep the base URL as <http://ollama:11434>.
Your qwen3-v1:8b model is not the model named in the OpenHands recommendation, and the error saying that the response did not contain a function call or message is consistent with a model that can chat but does not reliably follow OpenHands’ tool-calling format. llama3.2 is also not a good choice here because OpenHands reported that it was unsuitable for the configured thinking mode.
The documentation also lists these community-reported alternatives when a local model behaves like a chatbot or repeatedly fails tool calls:
- qwen2.5-coder-14b-instruct
- qwopus3.5-27b-v3 Q8_0 (or similar retrained qwopus variants)
These are community reports, not guarantees. Use the exact Ollama tag that exists in your /api/tags output. DeepSeek-R1 can be useful for reasoning, but it is not the primary model recommended in the current OpenHands local-LLM guide for reliable coding/tool use.
Recommended next test:
1. Install qwen3.6:35b-a3b in the Ollama container, if your GPU/RAM can run it.
2. Set OLLAMA_CONTEXT_LENGTH=32768 (or 22000 if necessary) and recreate the Ollama container.
3. Confirm it appears at curl -s <http://ollama:11434/api/tags>.
4. Configure Agent Canvas with ollama/qwen3.6:35b-a3b, base URL <http://ollama:11434>, and a new conversation.
Documentation: https://docs.openhands.dev/openhands/usage/llms/local-llms
This follow-up was prepared by an AI agent (OpenHands) on behalf of the user.limited-student-10747
08/14/2026, 9:34 PMmodern-garden-55994
08/14/2026, 9:43 PMmodern-garden-55994
08/14/2026, 9:46 PMmodern-garden-55994
08/14/2026, 9:48 PMmodern-garden-55994
08/14/2026, 9:57 PMmodern-garden-55994
08/14/2026, 10:12 PMlimited-student-10747
08/14/2026, 10:21 PMmodern-garden-55994
08/14/2026, 10:40 PMlimited-student-10747
08/14/2026, 10:47 PMmodern-garden-55994
08/14/2026, 11:07 PMmodern-garden-55994
08/16/2026, 5:59 PM