#Mi agente de openclaw que está conectado a Telegram fno tiene acceso a exec y solo está en text mod
1 messages · Page 1 of 1 (latest)
Pásame primero:
openclaw --version
openclaw status --all
Dicho eso: Telegram no debería limitar exec por sí mismo. Si el agente queda en “text mode”, suele ser una de estas:
- Está usando un CLI backend → los CLI backends son text-only y no tienen tools.
tools.profileestá enminimalomessaging.execestá bloqueado portools.denyo por config del agente.- Está en sandbox y
execno está permitido ahí.
Revisa esto:
openclaw agents list --bindings
openclaw config get tools.profile
openclaw config get tools.allow
openclaw config get tools.deny
openclaw config get agents.list
openclaw sandbox explain
Si ves que el perfil es messaging/minimal, para un agente con tools normalmente quieres coding o full. Por ejemplo, para el agente en agents.list[0]:
openclaw config set agents.list[0].tools.profile coding
openclaw gateway restart
Docs útiles:
Mi agente esta instalado en root y el perfil está en coding
Si está en coding, entonces debería tener exec: ese perfil incluye group:runtime → exec, process, code_execution.
Lo de “instalado en root” me hace sospechar más de config equivocada: estás editando la config de tu usuario, pero el Gateway corre con la config de root.
Pásanos esto, porfa:
openclaw --version
openclaw gateway status --deep --require-rpc
openclaw config file
openclaw config get agents.defaults.cliBackends
openclaw config get agents.defaults.model
openclaw config get agents.list
openclaw sandbox explain
En gateway status, mira especialmente si Config (cli) y Config (service) son distintas. Si son distintas, ese es el bug: el servicio está leyendo otra config. La reparación típica es correr desde el mismo usuario/perfil que debe usar el Gateway:
openclaw gateway install --force
openclaw gateway restart
Otra causa común: si el modelo activo es algo tipo codex-cli/... o claude-cli/..., eso es CLI backend y los CLI backends son text-only / sin tools directas. Ahí cambia a un provider normal con tool calling, o configura ACP si querías usar Codex/Claude como harness.
Docs: https://docs.openclaw.ai/gateway/config-tools y https://docs.openclaw.ai/gateway/cli-backends
Estoy utilizando ollama cloud como LLM, concretamente Kimi2.5
Eso apunta bastante a la config de Ollama Cloud, no a Telegram.
Con Ollama, asegúrate de NO usar /v1. En OpenClaw debe ir por la API nativa de Ollama:
models: {
providers: {
ollama: {
api: "ollama",
baseUrl: "https://ollama.com",
apiKey: "...",
models: [
{
id: "kimi-k2.5:cloud",
name: "kimi-k2.5:cloud",
input: ["text", "image"],
contextWindow: 128000,
maxTokens: 8192
}
]
}
}
}
Si tienes algo como esto, está mal para tools:
baseUrl: "https://ollama.com/v1"
api: "openai-completions"
Ese modo puede dejar tool calling roto / text-only.
Pásanos estas salidas:
openclaw --version
openclaw config get models.providers.ollama
openclaw config get agents.defaults.model
openclaw gateway status --deep --require-rpc
Y como prueba rápida, desde Telegram pídele algo explícito tipo “usa exec para ejecutar pwd”. Si responde en texto diciendo que no puede, pero la config está bien, entonces Kimi vía Ollama Cloud probablemente no está manejando tool calls de forma fiable en esa ruta. Para comparar, prueba temporalmente un modelo/provider con tool-calling estable y mira si aparece exec.
Puedes pasarme los comandos listos para copiar y pegar en mi terminal (los resultados de los comandos que necesitas que te pase)?
Sí — copia/pega este bloque y pásanos el output. No debería cambiar nada, solo diagnostica.
sudo -H bash <<'EOF'
echo "### VERSION"
openclaw --version
echo
echo "### WHOAMI"
whoami
id
echo
echo "### STATUS"
openclaw status --all
echo
echo "### GATEWAY STATUS"
openclaw gateway status --deep --require-rpc
echo
echo "### CONFIG FILE"
openclaw config file
echo
echo "### AGENTS + BINDINGS"
openclaw agents list --bindings
echo
echo "### MODEL DEFAULT"
openclaw config get agents.defaults.model
echo
echo "### TOOL POLICY"
openclaw config get tools.profile
openclaw config get tools.allow
openclaw config get tools.deny
echo
echo "### AGENT LIST"
openclaw config get agents.list
echo
echo "### OLLAMA PROVIDER CONFIG (REDACTED)"
openclaw config get models.providers.ollama 2>/dev/null | sed -E 's/(apiKey|token|botToken|password|secret)([": ]+)[^",} ]+/\1\2***REDACTED***/gi'
echo
echo "### SANDBOX EXPLAIN"
openclaw sandbox explain
EOF
Si sudo no aplica en tu instalación, ejecuta el mismo bloque quitando sudo -H.
Importante: antes de pegar aquí, revisa que no aparezcan tokens/API keys; el bloque intenta redacted, pero mejor doble check.
Paso cada bloque por separado o todos los bloques a la vez?
Todos a la vez está bien 👍
Es un solo bloque de diagnóstico. Cópialo entero, pégalo en la terminal, y luego pásanos todo el output.
Si te da error por sudo, entonces repítelo sin esta primera parte:
sudo -H
Y antes de pegar aquí, revisa rápido que no haya tokens/API keys visibles.
Estoy en vps de contabo. Ubuntu
Perfecto — en Ubuntu/Contabo y si lo instalaste como root, usa el bloque con sudo -H tal cual.
Si te sale openclaw: command not found, usa esta variante:
sudo env "PATH=$PATH" HOME=/root bash <<'EOF'
openclaw --version
openclaw status --all
openclaw gateway status --deep --require-rpc
openclaw config file
openclaw agents list --bindings
openclaw config get agents.defaults.model
openclaw config get tools.profile
openclaw config get tools.allow
openclaw config get tools.deny
openclaw config get agents.list
openclaw config get models.providers.ollama 2>/dev/null | sed -E 's/(apiKey|token|botToken|password|secret)([": ]+)[^",} ]+/\1\2***REDACTED***/gi'
openclaw sandbox explain
EOF
Pega aquí el output completo, revisando antes que no haya tokens visibles.
Por que crees que mi agente no tiene acceso a exec? Tiene arreglo este problema?
Sí, tiene arreglo. Por lo que contaste, las causas más probables son estas, en orden:
-
Kimi 2.5 vía Ollama Cloud no está haciendo tool-calling bien
Entonces OpenClaw sí tieneexec, pero el modelo responde en texto en vez de llamar la tool. -
Estás usando Ollama por
/v1/ OpenAI-compatible mode
Eso rompe o vuelve poco fiable el tool calling. Para OpenClaw debe ser:api: "ollama" baseUrl: "https://ollama.com"no:
baseUrl: "https://ollama.com/v1" api: "openai-completions"
-
El Gateway corre como root y estás mirando/editando otra config
Muy común en VPS. Tu terminal puede ver una config, pero el servicio usa/root/.... -
Alguna policy bloquea
execaunque el perfil seacoding:tools.deny, sandbox policy, o agent override.
La forma de saber cuál es: pásanos el output del bloque que te mandé. Sin eso estamos adivinando.
Como prueba rápida: cambia temporalmente a un provider/model conocido por tool-calling estable. Si con ese modelo exec funciona, entonces el problema no es Telegram ni OpenClaw: es Kimi/Ollama Cloud tool-calling.
Docs: https://docs.openclaw.ai/providers/ollama y https://docs.openclaw.ai/gateway/config-tools
Aún no confirmado. Falta que Joaquín pegue el output de diagnóstico.
Mi apuesta sigue siendo una de estas dos:
- está usando Ollama Cloud/Kimi por una ruta sin tool-calling fiable (
/v1/openai-completions) - o el Gateway en el VPS/root está leyendo otra config distinta
Si el output muestra api: "ollama" + baseUrl: "https://ollama.com" + tools.profile: coding + sin tools.deny: ["exec"], entonces probaría otro modelo/provider con tool-calling estable. Si ahí funciona, el problema es Kimi/Ollama Cloud, no Telegram.
vale me pongo ya con ello, vamos allá
Perfecto 💪 Pégalo todo cuando lo tengas.
Si el output es muy largo, con estas partes ya podemos empezar:
openclaw --version
openclaw gateway status --deep --require-rpc
openclaw config get models.providers.ollama
openclaw config get agents.defaults.model
openclaw config get tools.profile
openclaw config get tools.deny
openclaw sandbox explain
Y recuerda revisar/redactar cualquier token antes de enviarlo.
me indica que no puedo pegar directamente contenido porque esta en MarkDown y se considera spam. Alguna forma para eliminar esta traba?
Sí: no lo pegues como mensaje. Súbelo como archivo .txt.
En tu VPS ejecuta esto:
sudo -H bash <<'EOF'
OUT=/tmp/openclaw-diag.txt
{
echo "### VERSION"
openclaw --version
echo
echo "### STATUS"
openclaw status --all
echo
echo "### GATEWAY STATUS"
openclaw gateway status --deep --require-rpc
echo
echo "### CONFIG FILE"
openclaw config file
echo
echo "### AGENTS + BINDINGS"
openclaw agents list --bindings
echo
echo "### MODEL DEFAULT"
openclaw config get agents.defaults.model
echo
echo "### TOOL POLICY"
openclaw config get tools.profile
openclaw config get tools.allow
openclaw config get tools.deny
echo
echo "### AGENT LIST"
openclaw config get agents.list
echo
echo "### OLLAMA PROVIDER CONFIG"
openclaw config get models.providers.ollama
echo
echo "### SANDBOX EXPLAIN"
openclaw sandbox explain
} 2>&1 | sed -E 's/(apiKey|token|botToken|password|secret)([": ]+)[^",} ]+/\1\2***REDACTED***/gi' > "$OUT"
chmod 600 "$OUT"
echo "Guardado en: $OUT"
EOF
Luego descarga/sube /tmp/openclaw-diag.txt como adjunto en Discord.
Si estás en SSH y quieres verlo para copiarlo a un archivo local:
sudo cat /tmp/openclaw-diag.txt
Pero mejor adjunto .txt, así Discord no lo trata como spam/Markdown.
Sí — hagámoslo mucho más pequeño para que Discord lo deje pasar.
Copia/pega esto en la VPS:
sudo -H bash <<'EOF'
echo "VERSION=$(openclaw --version 2>&1 | head -1)"
echo "CONFIG_FILE=$(openclaw config file 2>&1 | head -1)"
echo "MODEL=$(openclaw config get agents.defaults.model 2>&1 | tr '\n' ' ')"
echo "TOOLS_PROFILE=$(openclaw config get tools.profile 2>&1 | tr '\n' ' ')"
echo "TOOLS_DENY=$(openclaw config get tools.deny 2>&1 | tr '\n' ' ')"
echo "OLLAMA_API=$(openclaw config get models.providers.ollama.api 2>&1 | tr '\n' ' ')"
echo "OLLAMA_BASEURL=$(openclaw config get models.providers.ollama.baseUrl 2>&1 | tr '\n' ' ')"
echo "--- GATEWAY CONFIG LINES ---"
openclaw gateway status 2>&1 | grep -Ei 'Config|Runtime|Connectivity|Probe|Listening|error' | head -30
EOF
Luego pega aquí solo ese resultado. Si Discord aún se queja, mándalo en 2–3 mensajes pequeños.
Con eso casi seguro vemos si es:
/v1/openai-completions- config distinta root/servicio
execbloqueado por policy- o Kimi/Ollama Cloud sin tool-calling fiable.
pero no se pueden adjuntar archivo txt?
En Discord normalmente sí se puede, pero depende de permisos del canal/foro, tamaño del archivo, o el filtro anti-spam del servidor.
Para evitar pelearte con eso, mejor pásame el diagnóstico reducido en texto. Es bastante pequeño:
sudo -H bash <<'EOF'
echo "VERSION=$(openclaw --version 2>&1 | head -1)"
echo "CONFIG_FILE=$(openclaw config file 2>&1 | head -1)"
echo "MODEL=$(openclaw config get agents.defaults.model 2>&1 | tr '\n' ' ')"
echo "TOOLS_PROFILE=$(openclaw config get tools.profile 2>&1 | tr '\n' ' ')"
echo "TOOLS_DENY=$(openclaw config get tools.deny 2>&1 | tr '\n' ' ')"
echo "OLLAMA_API=$(openclaw config get models.providers.ollama.api 2>&1 | tr '\n' ' ')"
echo "OLLAMA_BASEURL=$(openclaw config get models.providers.ollama.baseUrl 2>&1 | tr '\n' ' ')"
echo "--- GATEWAY CONFIG LINES ---"
openclaw gateway status 2>&1 | grep -Ei 'Config|Runtime|Connectivity|Probe|Listening|error' | head -30
EOF
Si aún te lo bloquea, pégalo sin backticks y en 2 mensajes.
No recomiendo intentar saltarse el filtro; mejor hacerlo más pequeño y sin Markdown.
no me deja pegar
No pasa nada — entonces hagámoslo manual y mínimo.
Ejecuta estos comandos uno por uno y respóndeme solo con los valores, sin Markdown:
sudo -H openclaw --version
sudo -H openclaw config get models.providers.ollama.api
sudo -H openclaw config get models.providers.ollama.baseUrl
sudo -H openclaw config get agents.defaults.model
sudo -H openclaw config get tools.deny
sudo -H openclaw gateway status | grep -Ei 'Config|Runtime|Connectivity'
Si Discord no te deja pegar ni eso, escríbelo a mano así:
version:
api:
baseUrl:
model:
tools.deny:
config cli/service iguales?: sí/no
Lo más importante es ver si baseUrl termina en /v1 y si api es ollama u openai-completions.
OpenClaw 2026.4.26 (be8c246)
Perfecto, versión reciente 👍
Ahora pásame solo estos 4 valores, uno por mensaje si Discord se pone pesado:
sudo -H openclaw config get models.providers.ollama.api
sudo -H openclaw config get models.providers.ollama.baseUrl
sudo -H openclaw config get agents.defaults.model
sudo -H openclaw config get tools.deny
Con eso ya podemos confirmar la causa más probable.
ollama
Bien: api=ollama está correcto ✅
Ahora el más importante:
sudo -H openclaw config get models.providers.ollama.baseUrl
Debe ser algo como:
https://ollama.com
Si sale https://ollama.com/v1, ahí está el problema.
Perfecto, la ruta de Ollama está bien ✅
Siguientes dos:
sudo -H openclaw config get agents.defaults.model
y:
sudo -H openclaw config get tools.deny
Si el modelo es ollama/kimi-k2.5:cloud y tools.deny no bloquea exec, entonces ya casi seguro es Kimi/Ollama Cloud no llamando tools de forma fiable, no una config básica rota.
Config path not found: agents.defaults.model
Eso no es malo: significa que no tienes un modelo default explícito en agents.defaults.model. OpenClaw puede estar resolviendo el modelo desde otro sitio: sesión actual, agente específico, modelos configurados, o selección previa con /model.
Ahora ejecuta este, que nos da el modelo real resuelto:
sudo -H openclaw models status --plain
Y este:
sudo -H openclaw config get tools.deny
Si tools.deny dice Config path not found, está bien: significa que no hay deny global bloqueando exec.
Si quieres dejar Kimi explícito como default, sería:
sudo -H openclaw config set agents.defaults.model '{"primary":"ollama/kimi-k2.5:cloud"}' --strict-json
sudo -H openclaw gateway restart
Pero antes pásame el resultado de models status --plain y tools.deny, así no tocamos config a ciegas.
Config path not found: tools.deny
Perfecto — entonces no hay un tools.deny global bloqueando exec ✅
Nos queda mirar modelo real y si hay override por agente/sandbox. Ejecuta estos tres:
sudo -H openclaw models status --plain
sudo -H openclaw config get agents.list
sudo -H openclaw sandbox explain
Si Discord no te deja pegar mucho, del agents.list dime solo si ves algo como:
toolsdenyprofilemodelagentRuntimecliBackends
Hasta ahora lo que sabemos:
- versión OK
- Ollama API nativa OK
- baseUrl OK
- no deny global
Así que quedan dos sospechosos fuertes: override del agente/sandbox o Kimi/Ollama Cloud no ejecutando tools bien.
Bien, entonces ya tenemos:
api = ollama✅baseUrl = https://ollama.com✅- modelo real =
ollama/kimi-k2.5:cloud✅ tools.denyno existe ✅
Eso descarta lo más obvio. Ahora mi sospecha principal es: Kimi 2.5 vía Ollama Cloud está respondiendo en modo texto y no está llamando tools de forma fiable.
Haz esta prueba directa desde la VPS, sin Telegram:
sudo -H openclaw agent --agent main --local --model ollama/kimi-k2.5:cloud --message "Usa exec para ejecutar pwd. Responde solo con el resultado." --timeout 120
Dime si pasa una de estas:
- Ejecuta
pwdy devuelve una ruta →execfunciona; el problema es la sesión/routing de Telegram. - Dice que no puede ejecutar comandos → Kimi/Ollama Cloud no está usando tools.
- Dice “tool blocked” o similar → hay policy/sandbox bloqueando.
Si sale el caso 2, el arreglo práctico es cambiar ese agente a un modelo/provider con tool-calling fiable. Para elegir modelo actual, mejor pregunta en #models, porque eso cambia rápido.
Eso también está bien: no tienes agentes extra en agents.list, así que estás usando el main/default agent. Menos cosas raras.
Ejecuta la prueba directa:
sudo -H openclaw agent --agent main --local --model ollama/kimi-k2.5:cloud --message "Usa exec para ejecutar pwd. Responde solo con el resultado." --timeout 120
Si te dice que main no existe, usa esta variante:
sudo -H openclaw agent --session-id test-exec --local --model ollama/kimi-k2.5:cloud --message "Usa exec para ejecutar pwd. Responde solo con el resultado." --timeout 120
Con ese resultado ya sabremos si el problema es Kimi/Ollama o Telegram/routing.
/root/.openclaw/workspace
¡Eso es buena señal! 🎉
Si el comando devolvió:
/root/.openclaw/workspace
entonces exec sí funciona con Kimi/Ollama Cloud en prueba local.
Ahora el problema ya no parece ser el modelo ni exec global. Queda algo específico de la sesión de Telegram/Gateway, probablemente:
- la sesión de Telegram tiene un override de modelo/modo antiguo,
- el Gateway/Telegram está usando otra sesión/config,
- o el mensaje en Telegram no está entrando como owner/autorizado para tools sensibles.
Próxima prueba: desde Telegram, escribe exactamente:
/status
y luego:
Usa exec para ejecutar pwd. Responde solo con el resultado.
Si en Telegram sigue diciendo que no puede, prueba iniciar una sesión limpia en Telegram con:
/session new
y después repite:
Usa exec para ejecutar pwd. Responde solo con el resultado.
Si sigue fallando tras /session new, pásame el texto exacto que responde el bot. Ahí ya buscamos routing/permisos de Telegram.
OpenClaw 2026.4.26 (be8c246)
🧠 Model: ollama/kimi-k2.5:cloud · 🔑 api-key (ollama:default)
🧮 Tokens: 32k in / 349 out · 💵 Cost: $0.0000
📚 Context: 16k/128k (13%) · 🧹 Compactions: 0
🧵 Session: agent:main:telegram:direct:124218767 • updated just now
⚙️ Execution: direct · Runtime: OpenClaw Pi Default · Think: off
🪢 Queue: collect (depth 0)
Ese /status confirma algo importante: no estás en text-only backend.
Veo:
Execution: direct · Runtime: OpenClaw Pi Default
Eso es la ruta normal con tools. Así que ahora revisaría la disponibilidad real de tools en esa sesión de Telegram:
En Telegram manda:
/tools compact
Busca si aparece exec o group:runtime.
Luego manda:
/verbose on
y después:
Usa exec para ejecutar pwd. Responde solo con el resultado.
Si /tools muestra exec, pero Kimi responde sin usarlo, entonces es comportamiento del modelo en esa sesión.
Si /tools no muestra exec, entonces hay una policy de tools aplicada a Telegram/sesión aunque la config global parezca bien.
vailable tools
Profile: coding
Built-in tools
edit, exec, image, process, read, sessions_history, sessions_send, session_status, sessions_list, sessions_spawn, subagents, web_fetch, web_search, write, sessions_yield
Connected tools
memory_get (memory-core), memory_search (memory-core)
Use /tools verbose for descriptions.
Ahí está: tu agente sí tiene exec disponible en Telegram ✅
Entonces el problema no es permisos ni configuración de tools. Es que Kimi no está eligiendo llamar exec en esa conversación, o está respondiendo como si no pudiera.
Haz esta prueba con wording más directo:
/verbose on
Luego:
Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout.
Si aun así responde “no puedo” o texto sin ejecutar, entonces es comportamiento del modelo. El arreglo práctico es:
- usar otro modelo/provider para sesiones donde quieras
exec, o - probar
/newpara limpiar la sesión y repetir, por si quedó contaminada por contexto anterior.
Prueba primero:
/new
y luego:
Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout.
Si con /new sigue igual, no es config: es Kimi/Ollama Cloud siendo flojo con tool-calling.
Verbose logging enabled.
Perfecto. Ahora en Telegram manda exactamente:
Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout.
Con verbose activado, si falla deberíamos ver si:
- intentó llamar
execy fue bloqueado, - llamó mal la tool,
- o directamente no llamó ninguna tool.
Tool exec not found Exec: pwd failed: Tool exec not found
Vale, eso ya es el dato clave.
/tools dice que exec existe, pero el run responde:
Tool exec not found
Eso ya no es “no tienes permisos”. Es un fallo de tool-call en esa sesión: el modelo/ruta está intentando llamar algo como exec, pero el runtime lo está tratando como tool inexistente.
Como la prueba local sí devolvió /root/.openclaw/workspace, yo probaría primero limpiar la sesión de Telegram:
En Telegram:
/new
Luego:
/verbose on
Luego:
Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout.
Si después de /new funciona: era contexto viejo contaminando la sesión.
Si después de /new sigue con Tool exec not found, entonces pinta a bug/compatibilidad con Ollama Cloud + Kimi en Gateway/Telegram. En ese caso: usa otro modelo con tool-calling fiable para ese agente, o abre issue con estos datos exactos: OpenClaw 2026.4.26, ollama/kimi-k2.5:cloud, /tools muestra exec, pero el tool call falla con Tool exec not found.
donde puedo mandar el issue?
Aquí: https://github.com/openclaw/openclaw/issues
Puedes poner algo así:
Title: Ollama Kimi tool call fails with "Tool exec not found" despite /tools showing exec
Body:
OpenClaw 2026.4.26 (be8c246)
Provider/model: ollama/kimi-k2.5:cloud
Channel: Telegram DM
Runtime: OpenClaw Pi Default
Execution: direct
tools.profile: coding
/tools compact shows exec available
Issue:
When asking Telegram session to run exec/pwd, the response is:
Tool exec not found Exec: pwd failed: Tool exec not found
But a local test works:
sudo -H openclaw agent --session-id test-exec --local --model ollama/kimi-k2.5:cloud --message "Usa exec para ejecutar pwd. Responde solo con el resultado." --timeout 120
Result:
/root/.openclaw/workspace
Ollama config:
api = ollama
baseUrl = https://ollama.com
tools.deny = not configured
agents.list = not configured
Expected:
The Telegram session should be able to call exec, since /tools shows it and local run works.
Antes de abrirlo, prueba también /new en Telegram si no lo hiciste; si sigue fallando, inclúyelo en el issue.
probé a hacer new y no funciona, puedes añadirlo tu al body del issue?
Sí — usa este body actualizado:
OpenClaw 2026.4.26 (be8c246)
Provider/model: ollama/kimi-k2.5:cloud
Channel: Telegram DM
Runtime: OpenClaw Pi Default
Execution: direct
tools.profile: coding
/tools compact shows exec available
Issue:
In a Telegram DM session, asking the agent to use exec fails with:
Tool exec not found Exec: pwd failed: Tool exec not found
I also tried starting a fresh Telegram session with /new and then repeated the same exec/pwd request. It still fails with the same "Tool exec not found" behavior.
Local test:
This local command works:
sudo -H openclaw agent --session-id test-exec --local --model ollama/kimi-k2.5:cloud --message "Usa exec para ejecutar pwd. Responde solo con el resultado." --timeout 120
Result:
/root/.openclaw/workspace
Config details:
- models.providers.ollama.api = ollama
- models.providers.ollama.baseUrl = https://ollama.com
- tools.deny = not configured
- agents.list = not configured
- /tools compact in Telegram shows exec in Built-in tools
- /status in Telegram shows:
- Model: ollama/kimi-k2.5:cloud
- Session: agent:main:telegram:direct:124218767
- Execution: direct
- Runtime: OpenClaw Pi Default
- Think: off
Expected:
The Telegram session should be able to call exec because /tools shows exec available and the local OpenClaw agent run can execute pwd successfully.
Actual:
The Telegram session reports "Tool exec not found" even after /new.
el body lo pongo en el summary del issue?
Sí: en GitHub normalmente sería:
- Title / título: una línea corta
- Description / body / summary: el bloque largo que te pasé
Pon esto como título:
Ollama Kimi tool call fails with "Tool exec not found" in Telegram session
Y el bloque largo va en description/body/summary del issue.
en el apartado "steps to reproduce" que pongo?
Pon esto en Steps to reproduce:
1. Run OpenClaw 2026.4.26 (be8c246) on Ubuntu VPS as root.
2. Configure Telegram DM with the main/default agent.
3. Configure Ollama Cloud as:
- models.providers.ollama.api = ollama
- models.providers.ollama.baseUrl = https://ollama.com
- model = ollama/kimi-k2.5:cloud
4. In Telegram, run /status and confirm:
- Execution: direct
- Runtime: OpenClaw Pi Default
- Model: ollama/kimi-k2.5:cloud
5. In Telegram, run /tools compact and confirm exec appears in Built-in tools.
6. In Telegram, run /new.
7. In Telegram, run /verbose on.
8. Ask:
Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout.
9. Observe the response:
Tool exec not found Exec: pwd failed: Tool exec not found
10. Compare with local CLI test:
sudo -H openclaw agent --session-id test-exec --local --model ollama/kimi-k2.5:cloud --message "Usa exec para ejecutar pwd. Responde solo con el resultado." --timeout 120
11. Local CLI test succeeds and returns:
/root/.openclaw/workspace
en el apartado expected behaviour que pongo?
Pon esto en Expected behaviour:
The Telegram session should be able to call the exec tool because /tools compact shows exec as an available built-in tool, the session is running with Execution: direct and Runtime: OpenClaw Pi Default, and the same model can execute pwd successfully through a local OpenClaw agent run.
When asked to run pwd via exec, the Telegram session should call exec and return the command stdout, e.g.:
/root/.openclaw/workspace
en actual behaviour que pongo?
Pon esto en Actual behaviour:
The Telegram session reports that exec is not found, even though /tools compact shows exec as available.
Observed response after asking the Telegram session to run pwd via exec:
Tool exec not found Exec: pwd failed: Tool exec not found
This still happens after starting a fresh Telegram session with /new and enabling verbose output with /verbose on.
The same model works through a local OpenClaw agent test and returns:
/root/.openclaw/workspace
en openclaw version que pongo?
Pon exactamente:
OpenClaw 2026.4.26 (be8c246)
aqui Provider / routing chain*, que pongo?
Pon esto:
Provider/model: ollama/kimi-k2.5:cloud
Auth: api-key (ollama:default)
Runtime: OpenClaw Pi Default
Execution: direct
Channel/session: Telegram DM, agent:main:telegram:direct:124218767
Ollama config:
- models.providers.ollama.api = ollama
- models.providers.ollama.baseUrl = https://ollama.com
vale, y ahora mi pregunta es, puedo intentar algo mas para arreglarlo o solo me queda esperar?
Puedes intentar algunas cosas más; no estás condenado a esperar.
Yo haría esto:
-
Probar Gateway sin Telegram — para aislar si el bug es Telegram o Gateway:
sudo -H openclaw agent --session-id gateway-exec-test --model ollama/kimi-k2.5:cloud --message "Debes llamar la tool exec ahora. Ejecuta exactamente: pwd. Responde solo con stdout." --timeout 120- Si falla igual → bug de Gateway/Ollama/Kimi.
- Si funciona → bug específico de Telegram/session handling.
-
Actualizar si hay versión nueva
sudo -H openclaw update --dry-runSi muestra una actualización razonable:
sudo -H openclaw update
-
Workaround práctico: usar otro modelo/provider para la sesión de Telegram.
En Telegram puedes probar:/modely seleccionar otro modelo que tengas configurado. Para recomendaciones actuales, pregunta en #models.
-
Si necesitas que funcione ya, usa el CLI local como workaround, porque ese sí ejecutó
exec.
Mi recomendación: abre el issue igualmente, y mientras tanto prueba el punto 1. Ese resultado va a ser muy útil para los maintainers.
si en lugar de conectar con telegram el agente, lo conectara con Discord, quizas funcionaria?
Sí, quizás, pero no lo sabremos hasta aislar si el fallo es Telegram o el Gateway.
Prueba primero esto en la VPS, sin --local:
sudo -H openclaw agent --session-id gateway-exec-test --model ollama/kimi-k2.5:cloud --message "Debes llamar la tool exec ahora. Ejecuta exactamente: pwd. Responde solo con stdout." --timeout 120
- Si devuelve
/root/.openclaw/workspace→ el Gateway funciona, y el problema parece Telegram. En ese caso Discord podría funcionar. - Si vuelve a decir
Tool exec not found→ Discord probablemente no lo arreglará, porque fallaría antes del canal.
Si pruebas Discord, hazlo en tu propio servidor/DM, no añadas bots personales al servidor de OpenClaw. Docs: https://docs.openclaw.ai/channels/discord
/root/.openclaw/workspace
Sí: con ese resultado, Discord podría funcionar.
Ahora sabemos:
- CLI local con
--localfunciona ✅ - Gateway sin
--localfunciona ✅ - Telegram DM falla ❌
Así que el problema parece específico de Telegram/session delivery, no del modelo ni de exec.
Puedes probar Discord como workaround, pero en tu propio servidor/DM. No añadas bots personales al servidor de OpenClaw.
También añade este dato al issue:
Additional isolation test:
Gateway-backed CLI run without --local also works:
sudo -H openclaw agent --session-id gateway-exec-test --model ollama/kimi-k2.5:cloud --message "Debes llamar la tool exec ahora. Ejecuta exactamente: pwd. Responde solo con stdout." --timeout 120
Result:
/root/.openclaw/workspace
So the failure appears specific to Telegram DM/session handling, not the model or Gateway agent runtime in general.
puede ser que el fallo venga porque en el listado de modelos que ofrece Telegram aparezca el modelo Kimi2.6 pero no el Kimi2.5?
Puede estar relacionado, pero no parece la causa directa.
Tu /status en Telegram mostró claramente:
Model: ollama/kimi-k2.5:cloud
Así que esa sesión sí está usando Kimi 2.5, aunque el picker/listado muestre Kimi 2.6 o no liste 2.5.
Lo que sí podría pasar es que el selector /model de Telegram tenga una lista desactualizada o incompleta, pero el fallo de Tool exec not found ocurre ya con el modelo resuelto como kimi-k2.5:cloud.
Añádelo al issue como nota secundaria:
Note:
Telegram /status shows the active model as ollama/kimi-k2.5:cloud, but the Telegram model picker/list appears to show Kimi 2.6 and not Kimi 2.5. I’m not sure if this is related, but the failing session is definitely resolved to ollama/kimi-k2.5:cloud according to /status.
he cambiado de modelo y ante la peticion Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout......telegram me ha devuelto esto: /root/.openclaw/workspace
¡Perfecto! Entonces ya está aislado 🎯
Conclusión: Telegram y exec sí funcionan. El problema es específico de ollama/kimi-k2.5:cloud con tool-calling en esa sesión/canal.
Añade esto al issue:
Update:
I switched to another model in the same Telegram session and repeated the same prompt:
Debes llamar la tool exec ahora. Ejecuta exactamente: pwd
No expliques nada. Después de la tool, responde solo con stdout.
With the other model, Telegram successfully returned:
/root/.openclaw/workspace
So Telegram and exec work correctly in general. The issue appears specific to ollama/kimi-k2.5:cloud tool-calling.
Como workaround: deja ese otro modelo para Telegram cuando necesites tools/exec. Kimi 2.5 puede servir para texto, pero ahora mismo parece mala idea para tool-calling en Telegram.
asi que ahora si que esta operativo mi agente, verdad?
Sí — ahora sí está operativo ✅
La prueba buena era exec pwd, y Telegram te devolvió:
/root/.openclaw/workspace
Eso confirma que:
- Telegram está conectado bien
- el agente ve tools
execfunciona- el runtime no está en text-only
El problema era ese modelo concreto (ollama/kimi-k2.5:cloud) con tool-calling, no tu instalación. Déjalo con el modelo que sí funcionó para tareas con exec.
perfecto, ya esta resuelto. Era el LLM lo que no funcionaba bien
Me alegro, buen aislamiento 🙌
Resumen: instalación OK, Telegram OK, exec OK; el problema era tool-calling del LLM concreto. Quédate con el modelo que sí ejecutó pwd.
Si esto ya quedó resuelto, porfa marca la solución para que quede indexada en Answer Overflow:
right-click en el mensaje solución → Apps → ✅ Mark Solution.