Crear un agente de soporte fundamentado
Crea un agente con alma, una tarea con límites, herramientas y una base de conocimientos — sobre MCP.
list_toolslist_knowledge_basescreate_agentget_agentcreate_shareAntes de construir — descubre, no ejecutes esto en frío. Entrevista al inquilino sobre su trabajo, su material, los procedimientos que ejecuta y los sistemas con los que debe interactuar; planifica toda la configuración (agente + base de conocimientos + habilidades + MCP según sea necesario) y simula el flujo antes de crear nada. Los pasos a continuación son lo que ejecutas después de eso; consulta Descubre antes de construir.
Principio — un agente, un trabajo. Asigna a este agente una única tarea claramente delimitada. Si el negocio tiene tres trabajos (soporte y ventas y programación), crea tres agentes — un agente que "hace todo" responde peor a cada cosa. Más información en Principios de diseño.
Un agente es alma + tarea + herramientas + habilidades + bases_de_conocimiento. soul (alma) es la identidad y la voz; task (tarea) es el trabajo y sus límites — ambos se incluyen en el prefijo fijo del prompt del sistema.
1. Ve qué puedes conectar
list_tools() # tools available to this tenant (including connected MCP tools)
list_knowledge_bases() # knowledge bases you can mount2. Créalo
Activado por defecto, para que no tengas que pedirlo. Un nuevo agente ya puede responder con un formulario (
ask_forms) seleccionable de opción única/múltiple cuando necesita dos o tres datos antes de poder responder, y ya puede dibujar un gráfico (compute_chartestá en la lista de herramientas por defecto). Ambos estaban desactivados por defecto hasta el 2026-08-03, y la llamada de creación no tenía parámetro para el primero — por lo tanto, los agentes creados antes de esa fecha no tienen ninguno, yupdate_agent(ask_forms=True, add_tools=["compute_chart"])es cómo actualizas uno a la versión más reciente.Pasar
tools=[...]reemplaza la lista por defecto en lugar de añadir a ella, así que incluyecompute_charttú mismo siempre que pases herramientas.
Los nombres son en minúsculas. El nombre no es solo lo que ves — once tablas hacen referencia a un agente por su nombre (shares, sesiones, storylines, bindings de canal, uso), por lo que
Pipypipson dos agentes diferentes para todas ellas y el mismo para ti. Los nuevos nombres se convierten a minúsculas al guardar; escríbelos así y no habrá nada que reconciliar. Tampoco es la URL pública — esa esalias.
create_agent(
name="support", # lower-case; the platform lower-cases it anyway
alias="support", # public human-readable URL slug — set one (url-safe, lowercase)
soul="You are the support assistant for Acme Loans. Professional and warm.",
task="Answer questions about mortgage products and the application process. "
"Never promise a disbursement date; never give legal or tax advice; "
"for any specific quote, call a tool — do not answer from memory.",
tools=["web_search"],
knowledge_bases=["company-policy"], # use the KB's returned slug name (see below)
published=True,
)aliases el segmento de dirección legible por humanos público del agente ({public_base}/t/<tenant>/<alias>) — establécelo para poder entregar a las personas un enlace memorable. Se normaliza a un slug url-safe; si hay conflicto, se devuelve enalias_result.- Las herramientas del sistema están activadas por defecto. Los nuevos agentes obtienen automáticamente
current_time,ip_geoyweather(el MCPsystemintegrado) — no los listan;toolses para las extra. - Los nombres en las URLs son slugged. El nombre de una base de conocimiento se convierte en un slug url-safe al crearlo (
"Company Policy"→company-policy); conéctalo por el nombre devuelto, no por lo que escribiste.
3. Confirma qué se guardó
get_agent(name="Support") # writing it doesn't mean it looks the way you intendedpublished=True significa visible, no alcanzable. Los usuarios finales no pueden acceder al agente hasta que crees un share (paso 4). No te detengas en "publicado".
Los límites pertenecen en task — las restricciones negativas ("nunca prometas…") detienen la deriva mejor que la descripción positiva. No pongas reglas de seguridad en soul; la plataforma añade la moderación global automáticamente. Para cambiar un campo más tarde, usa update_agent(name, field=…) — se fusiona, por lo que no dejará en blanco el resto.
4. Publícalo — pregunta cómo, luego hazlo alcanzable
Antes de decir "listo", pregunta al inquilino cómo deberían sus clientes acceder a él, luego conecta ese canal con create_share (devuelve un enlace real y abierto — entrega ese enlace, no "está publicado"):
create_share(agent_name="Support", label="Website widget")
# → { token, chat_url, qr_url, embed_snippet, pretty_url, … }Si la respuesta lleva pretty_url (…/t/<tenant-alias>/<agent-alias>), ese es el enlace para
humanos — legible y estable entre rotaciones de token. Si es null, establece el alias faltante
(create_agent(alias=…) / PUT /agents/{name}/alias; alias del inquilino en la consola → Configuración) en lugar de enviar el enlace del token. chat_url sigue siendo correcto para incrustaciones y códigos QR.
- Sin sitio web — solo un enlace o un QR (un freelancer, una tienda, un folleto, una tarjeta de visita): entrega
chat_url(una página de chat alojada a pantalla completa — no se necesita sitio) yqr_url(un QR que pueden imprimir). Es anónimo: no requiere inicio de sesión, y cada visitante es recordado por su navegador, por lo que los clientes habituales son reconocidos. - Su propio sitio web: dales
embed_snippet(una línea antes de</body>para un widget flotante), ochat_urlpara enlazar / iframe. - Telegram / WhatsApp: configura por canal en la consola (Agente → Integración → Telegram / WhatsApp); señalales allí.
Informa de vuelta. Entrega el enlace real que pueden abrir y probar ahora mismo (
chat_url, yqr_urlsi no tienen sitio), además de la página de la consola del agente para revisarlo —https://console.agent4.io/#/agents/Support. No "está publicado" — el enlace.