{"capabilities":{},"defaultInputModes":["text/plain"],"defaultOutputModes":["text/plain"],"description":"Agente que crea agentes para empresas en JobLanders. Entrevista a la empresa, elige el tipo de agente (ventas, soporte, marketing, asistente personal) y genera su configuración (blueprint).","name":"agentcreator","preferredTransport":"JSONRPC","protocolVersion":"0.3.0","skills":[{"description":"Agente que crea agentes para empresas en JobLanders. Entrevista a la empresa, elige el tipo de agente (ventas, soporte, marketing, asistente personal) y genera su configuración (blueprint). ","examples":[],"id":"agentcreator","name":"model","tags":["llm"]},{"description":"Lista los tipos de agente disponibles (verticales predefinidos).","id":"agentcreator-list_agent_types","name":"list_agent_types","tags":["llm","tools"]},{"description":"Inventario REAL de lo que la plataforma ofrece hoy: conectores, tools del\nagente por tipo, tareas programadas, Bandeja de aprobaciones, desarrollo a\nmedida (codegen), API por agente, usuarios y mejora continua.\n\nÚsalo SIEMPRE antes de diseñar un flujo o prometer una capacidad. Lo que no\naparezca aquí no existe: di si se puede desarrollar o si requiere plataforma.","id":"agentcreator-list_platform_capabilities","name":"list_platform_capabilities","tags":["llm","tools"]},{"description":"Fija el tipo de agente a crear. Debe ser uno del catálogo.","id":"agentcreator-select_agent_type","name":"select_agent_type","tags":["llm","tools"]},{"description":"Guarda la respuesta a una pregunta del cuestionario del tipo elegido.","id":"agentcreator-record_answer","name":"record_answer","tags":["llm","tools"]},{"description":"Muestra al usuario un formulario con campos etiquetados (inputbox) dentro\ndel chat, para pedir varios datos concretos de una vez (p. ej. los datos de\nun componente: nombre de la cuenta, URL, presupuesto…).\n\n`fields`: lista de {\"key\",\"label\"} y opcionales {\"placeholder\",\"type\"}\n(type: text|email|url|number|textarea|date). Máx 8 campos. PROHIBIDO pedir\nsecretos (contraseñas, API keys): esos se conectan en Integraciones.\nEl usuario responderá con los valores en su siguiente mensaje.","id":"agentcreator-request_input","name":"request_input","tags":["llm","tools"]},{"description":"Devuelve preguntas respondidas y pendientes (para autochequeo del agente).","id":"agentcreator-get_questionnaire_status","name":"get_questionnaire_status","tags":["llm","tools"]},{"description":"Añade una SKILL de conocimiento al agente en creación (se instalará al\ngenerar el blueprint). Úsala cuando la conversación revele que el agente la\nnecesita y NO sea ya de serie para su tipo (las de serie se instalan solas).\nConsulta la sección `skills` (kind=prompt) de list_platform_capabilities.\nAl usuario preséntalo como \"tu agente dominará X\" — jamás menciones\nlibrerías, secciones de prompt ni nada interno.","id":"agentcreator-add_skill","name":"add_skill","tags":["llm","tools"]},{"description":"Busca en el catálogo de SERVICIOS DE DATOS de la plataforma (por Apify:\nscraping de empleo, leads, redes sociales, reviews…) algo que cubra una\nnecesidad del usuario que las tools normales no cubren.\n\nDevuelve hasta 5 opciones con título, qué hace y fiabilidad. Preséntaselas\nal usuario en llano (\"puedo darle a tu agente reseñas de Trustpilot\") y\ndeja que elija. Los servicios del catálogo ya están aprobados y llevan\ncontrol de coste automático. NUNCA menciones precios internos ni \"actors\".","id":"agentcreator-buscar_servicio_datos","name":"buscar_servicio_datos","tags":["llm","tools"]},{"description":"Diseña y valida el FLUJO de trabajo del agente (gate determinista).\n\n`flow` = {\"trigger\": \"api|chat|schedule|agent\", \"schedule_hint\": \"cada mañana L-V\"?,\n\"source_agent\": \"instance_id del colega (OBLIGATORIO si trigger=agent: su\n                trabajo terminado dispara este flujo)\"?,\n\"schedule\": {\"freq\": \"hourly|daily|weekdays|weekly|every_1m|every_5m|every_15m|\n             every_30m\", \"at_hour\": 9, \"at_minute\": 0, \"weekday\": 0-6?,\n             \"timezone\": \"Europe/Madrid\"}\n            (OBLIGATORIO si trigger=schedule — con esto la tarea programada\n            se CREA sola al confirmar el agente. Las `every_*m` son de\n            VIGILANCIA: «mira el correo cada 5 minutos y actúa si hay algo».\n            Las de vigilancia no usan at_hour),\n\"watch\": {\"tool\": \"<herramienta del agente>\", \"args\": {…}}\n         (OBLIGATORIO con las frecuencias de vigilancia): la comprobación\n         BARATA que se hace SIN gastar modelo para decidir si hay trabajo.\n         Se despierta al agente solo si devuelve algo. Ejemplo: mirar el\n         buzón con microsoft_buscar_correos. Sin esto, el agente pensaría\n         cada minuto aunque no pase nada, y eso cuesta dinero real,\n\"steps\": [{\"tool\": nombre, \"purpose\": qué hace ese paso}],\n\"approvals\": \"bandeja|auto\", \"notify\": \"email|none\",\n\"condition\": \"texto llano opcional — solo ejecutar si se cumple (p. ej.\n             'el trabajo es de Barcelona'; ≤300 caracteres)\"?,\n\"on_error\": \"notify (default: email al dueño si una ejecución falla) | silent\"?}.\n\nCada tool debe existir en list_platform_capabilities; una tool a desarrollar\nse declara \"custom:<nombre>\". Si el gate devuelve errores, corrige el diseño\ny vuelve a llamar — NO sigas con un flujo inválido. El flujo validado viaja\nen el blueprint y guía al agente desplegado.","id":"agentcreator-design_flow","name":"design_flow","tags":["llm","tools"]},{"description":"Lista los componentes (capacidades listas) recomendados para el tipo de agente\nelegido. Úsala para proponerle al cliente qué puede hacer el agente.","id":"agentcreator-list_components","name":"list_components","tags":["llm","tools"]},{"description":"Coloca un componente en el agente que se está creando, con los datos del negocio\nque rellena el cliente (inputs). El código lo generará el motor al desarrollarlo.\n\nParámetros:\n  component_id: id del componente (de list_components).\n  inputs: valores que pide el componente (sus 'inputs'), ej. precio_unitario.","id":"agentcreator-add_component","name":"add_component","tags":["llm","tools"]},{"description":"Quita un componente ya colocado en el agente en construcción.","id":"agentcreator-remove_component","name":"remove_component","tags":["llm","tools"]},{"description":"GATE determinista: valida completitud y construye el blueprint.\n\nSi faltan respuestas required, devuelve status=incomplete con missing_keys\n(el agente NO puede 'creerse' que terminó). Si está completo, construye el\nAgentBlueprint, lo guarda en el state y devuelve un resumen + coste estimado.","id":"agentcreator-generate_blueprint","name":"generate_blueprint","tags":["llm","tools"]},{"description":"Verifica E2E el flujo diseñado ANTES de crear el agente: simula el\ndisparador contra el agente construido del blueprint y comprueba que llama\nla cadena de tools correcta, en orden.\n\nLlámalo tras generate_blueprint cuando haya flujo (design_flow). Si falla,\nNO confirmes: ajusta el diseño o el prompt y reverifica. Los pasos con\nconectores sin conectar o tools custom: salen como not_verifiable\n(pendientes de su prerequisito, no suspensos) — explícaselo al usuario.","id":"agentcreator-verify_agent_flow","name":"verify_agent_flow","tags":["llm","tools"]},{"description":"Lee una URL PÚBLICA https (documentación de una API, página de la\nempresa…) y devuelve su texto. Úsala para informarte antes de proponer un\nconector (endpoints, auth, parámetros) o cuando el usuario te pase un\nenlace. Solo lectura; máx ~8000 caracteres (truncated=true si hay más).","id":"agentcreator-fetch_url","name":"fetch_url","tags":["llm","tools"]},{"description":"Busca información actual en internet (documentación de APIs, empresas,\nnoticias). Devuelve resultados con título, URL y resumen; para leer uno\nentero usa fetch_url con su URL. Útil p. ej. para encontrar la doc de una\nAPI antes de proponer un conector.","id":"agentcreator-web_search","name":"web_search","tags":["llm","tools"]},{"description":"Propone un conector NUEVO para el catálogo de la plataforma cuando el que\nel usuario necesita no existe (API con auth por token/clave; OAuth requiere\nplataforma). Genera el spec con el mismo shape del catálogo:\n{id, name, category, icon, description, auth: {kind, fields, secret_from,\nconfig_keys}, tools: [{name, description, method, url_template, params}]}.\n\nUn gate lo valida (errores → corrige y reintenta) y queda PENDIENTE de\naprobación humana. Dilo así al usuario: \"he propuesto el conector; cuando la\nplataforma lo apruebe podrás conectarlo\" — JAMÁS como ya disponible.\n`rationale`: por qué hace falta (lo lee quien aprueba).","id":"agentcreator-propose_connector","name":"propose_connector","tags":["llm","tools"]},{"description":"Confirma el blueprint, lo persiste y lanza la provisión.\n\nSi hay BD configurada: persiste creation_session + blueprint + instance +\nprovisioning_job y ejecuta el job (MVP shared). Sin BD (tests): solo marca\nsubmitted en el state.","id":"agentcreator-confirm_and_submit","name":"confirm_and_submit","tags":["llm","tools"]}],"supportsAuthenticatedExtendedCard":false,"url":"http://0.0.0.0:8072","version":"0.0.1"}