#agente
1 messages · Page 1 of 1 (latest)
como creo un nuevo agente y le configuro un modelo default (cloud) + 3 modelos locales, todo esto usando ollama
Para crear un nuevo agente (aislado: workspace + sesiones + credenciales propias) y dejarlo con modelo default cloud + 3 modelos locales (Ollama), lo más directo hoy es vĂa CLI. Desde la web (Control UI) puedes editar config, pero no hay un “botĂłn mágico” equivalente al wizard de openclaw agents add.
Docs Ăştiles:
- Multi‑agent: https://docs.openclaw.ai/concepts/multi-agent
- Ollama: https://docs.openclaw.ai/providers/ollama
- Config (model + allowlist): https://docs.openclaw.ai/gateway/configuration-reference#agentsdefaultsmodel
- Control UI: https://docs.openclaw.ai/web/control-ui
1) Levanta Ollama y prepara 3 modelos locales
En tu host Linux:
ollama serve # o asegúrate que el servicio esté corriendo
ollama pull <modelo_local_1>
ollama pull <modelo_local_2>
ollama pull <modelo_local_3>
ollama list
Para que OpenClaw los auto-descubra, la vĂa “simple” es NO definir models.providers.ollama y solo “activar” Ollama con:
export OLLAMA_API_KEY="ollama-local"
(En Ollama el “api key” puede ser cualquier string; es solo un opt‑in. Si corres OpenClaw como daemon/systemd, asegúrate de que esa env var también exista en el servicio.)
2) Crea el nuevo agente (Linux)
openclaw agents add <id-del-agente>
Esto abre un wizard que te crea:
agents.list[](conworkspaceyagentDir)- opcionalmente
bindings(si quieres que cierto canal/chat vaya a ese agente)
Verifica:
openclaw agents list --bindings
3) Configura: cloud como primary + 3 Ollama como fallbacks
En ~/.openclaw/openclaw.json (o desde Control UI → Config), para ese agente pon:
{
agents: {
defaults: {
// “catálogo/allowlist” para que /model los muestre y permita
models: {
"<cloud_provider>/<cloud_model>": { alias: "cloud" },
"ollama/<modelo_local_1>": { alias: "local1" },
"ollama/<modelo_local_2>": { alias: "local2" },
"ollama/<modelo_local_3>": { alias: "local3" }
}
},
list: [
{
id: "<id-del-agente>",
workspace: "~/.openclaw/workspace-<id-del-agente>",
model: {
primary: "<cloud_provider>/<cloud_model>",
fallbacks: [
"ollama/<modelo_local_1>",
"ollama/<modelo_local_2>",
"ollama/<modelo_local_3>"
]
}
}
]
}
}
Reinicia Gateway para aplicar:
openclaw gateway restart
4) Ojo: credenciales cloud son por agente
Cada agente tiene su propio auth-profiles.json. Si tu “main” ya tenĂa el cloud andando, el nuevo agente no hereda eso automáticamente.
- O vuelves a autenticar el provider en ese agente (con wizard /
openclaw models auth ...) - O copias credenciales entre agentes (segĂşn tu caso):
~/.openclaw/agents/<main>/agent/auth-profiles.json- →
~/.openclaw/agents/<id-del-agente>/agent/auth-profiles.json
- →
5) Comprobar que quedĂł bien
openclaw models status --agent <id-del-agente>
openclaw models list --agent <id-del-agente>
Si me dices quĂ© “cloud” provider estás usando (Anthropic/OpenAI/OpenRouter/etc) y dĂłnde quieres “enganchar” el agente (solo usarlo desde Control UI/TUI, o rutear un canal/Discord especĂfico con bindings), te paso el bloque exacto de bindings para tu caso.
ya cree un agente nuevo, ahora la sesion sera una diferente?, como selecciono el agente para hablar con el?, crear un agente nuevo actua en 2do plano o como selecciono para interactuar directamente con ese nuevo, me gustaria crear un agente diferente para cada proyecto que tengo planeado hacer
SĂ: cada agente tiene sesiones separadas.
- Un “agent” = workspace + auth + sesiones propias (aislado de
main). - Entonces, cuando hablas con el agente nuevo, vas a tener otro historial (otro session store) distinto al de
main.
(Internamente las keys suelen verse comoagent:<agentId>:<sessionKey>.)
Cómo “seleccionar” el agente para hablar con él
Depende desde dónde estás chateando:
A) Si hablas desde la Web (Control UI / Dashboard)
En la UI hay un selector de Agent (picker) en la parte superior/ajustes. Cambias a tu agentId nuevo y listo: esa conversaciĂłn ya corre en ese agente.
Docs: https://docs.openclaw.ai/web/control-ui
B) Si hablas desde la TUI (terminal)
En la TUI puedes cambiar de agente con:
/agents(ver lista)/agent <id>(cambiar)
Docs: https://docs.openclaw.ai/web/tui
C) Si hablas desde Discord (un canal/thread)
Ahà no “seleccionas” el agente con un comando en el chat normalmente: el Gateway decide qué agente responde por bindings (ruteo).
Lo tĂpico para “un agente por proyecto” en Discord es:
- crear un canal o thread por proyecto, y
- poner un binding para que ese canal/thread vaya al agent del proyecto.
Docs: https://docs.openclaw.ai/concepts/multi-agent
¿El agente nuevo “actúa en 2do plano”?
No por sĂ solo. Crear el agente solo lo define (config/dirs). El agente solo corre cuando:
- lo seleccionas en Control UI/TUI, o
- un mensaje entrante es ruteado a él por bindings, o
- tiene algo programado (heartbeat/cron) configurado para ese agente.
Recomendación para “un agente por proyecto”
- Si quieres aislamiento real (archivos del proyecto, reglas, modelos, credenciales, sesiones): un agente por proyecto está perfecto.
- Si solo quieres “separar conversaciones” pero compartir mismos archivos/credenciales: con sessions puede bastar, pero no te aĂsla workspace.
Dime cómo estás interactuando ahora mismo (¿Control UI web, TUI, o Discord?) y si tus “proyectos” van a vivir en threads/canales distintos en Discord, y te digo exactamente qué binding usar para rutear cada uno al agente correcto.
aunque intente cambiar de agente en la web no me deja
Te cortaste (“aunque intet…”) — pero si lo que quieres decir es “aunque intenté hablarle, no me responde / sigo hablando con el main”, eso es normal en Discord.
En Discord no puedes “cambiar de agente” con un comando de chat (tipo /agent) como en la TUI. En Discord el agente se elige por routing (bindings): si no hay binding, todo cae en el agente default.
Lo que pasa ahora
- SĂ, tu agente nuevo tiene sesiones separadas.
- Pero Discord sigue ruteando este canal/thread al agente default (normalmente
main) hasta que lo amarres con un binding.
SoluciĂłn: crea un binding para este canal (ideal: 1 canal/thread por proyecto)
En tu openclaw.json agrega algo asĂ:
{
bindings: [
{
agentId: "proyecto1",
match: {
channel: "discord",
peer: { kind: "channel", id: "<DISCORD_CHANNEL_ID>" }
}
}
]
}
Luego:
openclaw gateway restart
¿Cuál es el <DISCORD_CHANNEL_ID>?
Activa “Developer Mode” en Discord y haz Copy Channel ID en el canal/thread del proyecto.
Alternativas rápidas
- Si quieres que TODO Discord vaya al agente nuevo (no recomendado si vas a tener muchos proyectos):
{ bindings: [{ agentId: "proyecto1", match: { channel: "discord" } }] }
- Si quieres interactuar “directo” sin bindings: usa Control UI y ahà sà eliges el agente en el selector.
Para que te lo deje exacto (sin adivinar)
Pásame:
openclaw --versionopenclaw agents list --bindings
y dime: Âżquieres que este channel#agentevaya al agente nuevo, o vas a crear un canal/thread por proyecto?
Si en la Control UI no te deja cambiar de agente, casi siempre es porque ese Gateway no “ve” tu agente nuevo (o estás conectado a otro Gateway/config distinta).
Checklist rápido (en la máquina donde corre el Gateway, no en tu laptop si es remoto):
- Verifica que el agente exista en el config que está usando el Gateway
openclaw agents list --bindings
AhĂ tiene que aparecer tu agentId nuevo.
- Reinicia el Gateway (muchos cambios no se reflejan hasta restart)
openclaw gateway restart
- Ojo con el clásico “config (cli) vs config (service)”
Si el Gateway corre como servicio, puede estar leyendo otro config distinto al que editaste.
Pega esto:
openclaw gateway status
En la salida suele mostrar algo como Config (cli) y Config (service). Si son diferentes, ahà está el problema.
-
Confirma que la Control UI está conectada al Gateway correcto
En la Control UI, revisa el URL/host/puerto (a veces uno tiene dos Gateways: local + VPS). -
Para descartar que sea solo la UI, prueba por TUI (si te funciona, el agente está bien y es tema UI/ruta):
openclaw tui
/agents
/agent <tuAgentId>
Dime exactamente qué significa “no me deja”:
- ÂżNo aparece el agente en la lista (solo ves
main)? - ÂżAparece pero al seleccionarlo vuelve a
main? - ÂżTe da algĂşn error?
Y pega la salida de:
openclaw agents list --bindingsopenclaw gateway status
quiero cambiar de agente desde el chat de la web, pero en el recuadro solo me sigue apareciendo el agente main, aunque ya reinicie el gateway y refresque la pagina
quiero cambiar de agente desde el chat de la web, pero en el recuadro solo me sigue apareciendo el agente main, aunque ya reinicie el gateway y refresque la pagina
Si en el selector de la Control UI solo aparece main, significa que el Gateway al que estás conectado SOLO tiene 1 agente configurado (o está leyendo otro config/perfil donde tu agente nuevo no existe).
La UI no “descubre” agentes por carpetas: solo muestra lo que el Gateway expone desde agents.list.
1) Confirma en el host del Gateway qué agentes ve de verdad
En la misma máquina donde corre el Gateway (importante), ejecuta:
openclaw agents list --bindings
openclaw gateway status
openclaw config get agents.list
- Si
openclaw agents listte muestra solomain, entonces el agente nuevo no quedó escrito en el config que usa ese Gateway (o lo creaste en otro perfil/otra máquina). - En
openclaw gateway statusfĂjate especialmente enConfig (service)vsConfig (cli):- Si son distintos → estás editando un config, pero el servicio está corriendo con otro.
2) Caso tĂpico: “Config (cli) != Config (service)” (perfil equivocado)
La FAQ da este fix (cuando el servicio usa otro state/profile):
openclaw gateway install --force
openclaw gateway restart
Ojo: ejecuta eso desde el mismo profile que quieres que use el servicio (si usas openclaw --profile X ..., repĂtelo con ese profile).
(Referencia: en la FAQ, “Config (cli) y Config (service) different”.)
3) Caso tĂpico #2: el Gateway es remoto
Si tu Control UI apunta a un VPS/servidor remoto, pero tú corriste openclaw agents add ... en tu PC local, entonces el agente se creó localmente y el Gateway remoto jamás lo va a ver.
En ese caso, crea el agente en el servidor (o conecta por SSH y corre ahĂ el comando).
Si me pegas aquĂ la salida de:
openclaw agents list --bindingsopenclaw gateway status
te digo exactamente cuál de los casos es y qué comando correr para que el agente nuevo aparezca en la web.
Agents:
- main (default)
Identity: Luna (IDENTITY.md)
Workspace: ~/.openclaw/workspace
Agent dir: ~/.openclaw/agents/main/agent
Model: ollama/minimax-m2.5:cloud
Routing rules: 0
Routing: default (no explicit rules) - agenteone (AgenteOne)
Workspace: ~/.openclaw/workspace-agenteone
Agent dir: ~/.openclaw/agents/agenteone/agent
Model: ollama/minimax-m2.5:cloud
Routing rules: 0
Routing rules map channel/account/peer to an agent. Use --bindings for full rules.
Channel status reflects local config/creds. For live health: openclaw channels status --probe.
ervice: systemd (enabled)
File logs: /tmp/openclaw/openclaw-2026-02-18.log
Command: /usr/local/bin/node /usr/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18789
Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.
Runtime: running (pid 17442, state active, sub running, last exit 0, reason 0)
RPC probe: ok
Listening: 127.0.0.1:18789
Troubles: run openclaw status
Troubleshooting: https://docs.openclaw.ai/troubleshooting
Perfecto: tu salida confirma que el Gateway sà tiene 2 agentes (main y agenteone) y que estás editando el mismo config que usa el servicio (Config cli/service = ~/.openclaw/openclaw.json). Asà que el problema no es que el agente no exista.
Lo que te está pasando es esto:
La Control UI (chat en la web) hoy se queda en el agente “default”
En la práctica, el chat web normalmente usa el agente default (en tu caso main) y por eso en ese recuadro solo te aparece main, aunque haya más agentes en agents.list.
CĂłmo interactuar con agenteone ahora mismo (funciona seguro)
OpciĂłn 1 (recomendada): TUI
openclaw tui
/agents
/agent agenteone
Y ya chateas con ese agente (con sesiones separadas).
Opción 2: CLI “un turno” contra un agente
Para probar rápido que responde:
openclaw agent --agent agenteone --message "hola, estás ah�"
Workaround si sĂ o sĂ quieres usar la web para ese agente
Cambia cuál es el default:
En tu openclaw.json, en agents.list marca agenteone como default: true y asegĂşrate que main no lo tenga:
{
agents: {
list: [
{ id: "agenteone", default: true, /* ... */ },
{ id: "main", /* ... */ }
]
}
}
Luego:
openclaw gateway restart
Con eso, el chat web te deberĂa quedar “pegado” a agenteone (porque ahora es el default).