Agentes y conocimiento
Crea agentes de IA, ponlos en conversaciones y mantén al día la información que comparten.
Un agente responde a los clientes con sus instrucciones, su modelo y sus capacidades. El conocimiento es lo que comparten los agentes de la organización: ubicaciones, tarjetas de contacto del directorio y archivos.
Los agentes exigen agents:read y agents:write. Poner un agente en una conversación exige conversations:write. El conocimiento exige knowledge:read y knowledge:write.
1. Consulta las opciones
GET /agent-options lista los modelos, las voces y las capacidades que Ricky acepta. Usa solo esos valores: cualquier otro recibe 400 invalid_input.
curl https://getricky.ai/api/v1/agent-options \
-H "Authorization: Bearer $RICKY_API_KEY"Una capacidad cuya family no es human_handoff funciona solo cuando la organización conecta esa integración en Ricky. ricky.handoff.request necesita handoff_user_ids: los miembros que reciben la conversación.
2. Crea un agente
curl https://getricky.ai/api/v1/agents \
-H "Authorization: Bearer $RICKY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: agente-ventas-v1" \
-d '{
"name": "Asistente de ventas",
"instructions": "Saluda por el nombre y confirma el pedido antes de dar la fecha de entrega.",
"capabilities": ["ricky.handoff.request"],
"handoff_user_ids": ["2d4f6a8c-1b3d-4e5f-8a7b-9c0d1e2f3a4b"]
}'Sin model ni voice, el agente recibe los predeterminados de GET /agent-options. PATCH /agents/{agent_id} cambia solo los campos que envías; capabilities y handoff_user_ids reemplazan sus conjuntos completos. DELETE /agents/{agent_id} lo archiva: deja de responder sus conversaciones y se pausan los flujos que lo asignan.
3. Ponlo en una conversación
curl -X PATCH https://getricky.ai/api/v1/conversations/$CONVERSATION_ID/agent \
-H "Authorization: Bearer $RICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "agent_id": "7e8f9a0b-1c2d-4e3f-a4b5-c6d7e8f9a0b1" }'La respuesta es la conversación con su agent_id. La conversación deja de estar asignada a un miembro. "agent_id": null apaga la IA en esa conversación.
4. Ubicaciones y contactos del directorio
/knowledge/locations guarda las sucursales que los agentes envían como ubicación de WhatsApp: nombre, dirección, coordenadas confirmadas, teléfono, correo y horario. /knowledge/contacts guarda las tarjetas de contacto que envían; cada una necesita un nombre visible y un teléfono o un correo. Ambas aceptan GET, POST, PATCH y DELETE, y Ricky guarda los teléfonos en E.164.
5. Sube un archivo
Un archivo se sube en tres pasos, así sus bytes nunca pasan por el cuerpo JSON.
curl https://getricky.ai/api/v1/knowledge/files \
-H "Authorization: Bearer $RICKY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Lista de precios 2026",
"filename": "precios.pdf",
"mime_type": "application/pdf",
"size_bytes": 482133
}'La respuesta trae el archivo, uploading, y una upload_url válida por dos horas. Envía ahí los bytes con el mismo tipo y tamaño que declaraste:
curl -X PUT "$UPLOAD_URL" -H "Content-Type: application/pdf" --data-binary @precios.pdfLuego complétalo. Ricky revisa los bytes, lee el contenido para los agentes y responde el archivo, ready; un PDF largo puede tardar minutos.
curl -X POST https://getricky.ai/api/v1/knowledge/files/$FILE_ID/complete \
-H "Authorization: Bearer $RICKY_API_KEY"Los PDF, Word y Excel admiten hasta 100 MB; las imágenes JPEG y PNG, hasta 5 MB. Si Ricky no lee contenido útil, extraction_error lo dice y los agentes no pueden consultarlo, aunque sí enviarlo. GET /knowledge/files/{file_id} de un archivo ready trae una download_url válida por cinco minutos.