ChatKit es la mejor forma de crear experiencias de chat con agentes. Ya sea que desarrolles un asistente para consultar una base de conocimientos interna, incorporar personal, investigar, hacer compras o programar citas, un bot para resolver problemas, un asesor de planificación financiera o un agente de soporte, ChatKit te ofrece un chat personalizable que puedes integrar en tu aplicación y que se encarga de todos los detalles de la experiencia de usuario.
Usa los widgets de interfaz integrables de ChatKit, los prompts personalizables, las llamadas a herramientas, los archivos adjuntos y las visualizaciones de la cadena de pensamiento para crear agentes sin tener que diseñar la interfaz de chat desde cero.
Descripción general
Elige una de las dos opciones de integración de ChatKit:
- Integración con un servidor propio. Ejecuta ChatKit en tu propia infraestructura. Usa el SDK de ChatKit para Python y conéctate a cualquier servicio de agentes, incluidos los que se crean con el SDK de Agentes. Usa widgets para crear el frontend.
- Integración existente alojada en Agent Builder. Si ya usas ChatKit con un flujo de trabajo de Agent Builder, puedes seguir usando ese flujo alojado durante el período de transición de Agent Builder.
OpenAI está retirando Agent Builder. Quienes ya lo usan pueden seguir haciéndolo durante el período de transición. El cierre del producto está previsto para el 30 de noviembre de 2026. ChatKit sigue disponible. Para nuevos desarrollos o para planificar la migración, usa las integraciones avanzadas de ChatKit con tu propia implementación de agentes en el servidor y consulta la guía Migrar desde Agent Builder para obtener orientación sobre la transición de Agent Builder.
Primeros pasos con ChatKit


Integra ChatKit en tu frontend
Usa esta opción solo si tu implementación de ChatKit ya utiliza un flujo de trabajo de Agent Builder. Si creas una aplicación nueva con ChatKit o migras una existente antes del cierre de Agent Builder, usa la integración avanzada para conectar ChatKit a tu propia implementación de agentes en el servidor.
La configuración de ChatKit con un flujo de trabajo ya alojado consta de tres pasos. Abre tu flujo de trabajo mientras Agent Builder siga disponible. Luego configura ChatKit y agrega funciones para crear tu experiencia de chat.

1. Usa un flujo de trabajo ya alojado
Abre tu flujo de trabajo existente en Agent Builder. Obtendrás el ID del flujo de trabajo. Para planificar la transición, consulta la guía para migrar desde Agent Builder.
El chat integrado en tu frontend se conectará al flujo de trabajo que selecciones.
2. Configura ChatKit en tu producto
Para configurar ChatKit, crearás una sesión de ChatKit y un punto de acceso en el servidor, pasarás el ID de tu flujo de trabajo, intercambiarás el secreto de cliente y agregarás un script para integrar ChatKit en tu sitio.
Nota importante sobre seguridad: al crear una sesión de ChatKit, debes pasar el parámetro user con un valor único para cada usuario final. Tu servidor debe
autenticar a los usuarios de tu aplicación y pasar en este parámetro un identificador único para cada uno.
-
Genera un token de cliente en tu servidor.
Este ejemplo inicia un servicio que crea una sesión de ChatKit mediante la API de OpenAI y devuelve el secreto de cliente de la sesión:
Python# Replace the illustrative IDs and URLs below with your own resource values. import hmac import json import os from typing import Annotated import requests from fastapi import Depends, FastAPI, HTTPException from fastapi.security import HTTPAuthorizationCredentials, HTTPBearer from pydantic import BaseModel api_key = os.environ["OPENAI_API_KEY"] workflow_id = "wf_123" authenticated_users: dict[str, str] = json.loads( os.environ["CHATKIT_AUTHENTICATED_USERS"] ) bearer_auth = HTTPBearer(auto_error=False) def get_authenticated_user_id( credentials: Annotated[ HTTPAuthorizationCredentials | None, Depends(bearer_auth), ], ) -> str: if credentials is not None: for token, user_id in authenticated_users.items(): if hmac.compare_digest(credentials.credentials, token): return user_id raise HTTPException(status_code=401, detail="Invalid authentication token") class ChatKitSession(BaseModel): client_secret: str app = FastAPI() @app.post("/api/chatkit/session") def create_chatkit_session( user_id: Annotated[str, Depends(get_authenticated_user_id)], ): response = requests.post( "https://api.openai.com/v1/chatkit/sessions", headers={ "Authorization": f"Bearer {api_key}", "Content-Type": "application/json", "OpenAI-Beta": "chatkit_beta=v1", }, json={ "workflow": {"id": workflow_id}, "user": user_id, }, timeout=30, ) response.raise_for_status() session = ChatKitSession.model_validate(response.json()) return {"client_secret": session.client_secret}Para Ruby, instala WEBrick con
gem install webrick.Antes de iniciar el servicio, reemplaza
wf_123por el ID de tu flujo de trabajo y configuraOPENAI_API_KEYyCHATKIT_AUTHENTICATED_USERS. El valor de esta última variable es un mapa JSON que asocia los tokens de portador de tu aplicación con identificadores de usuario estables. En producción, reemplaza este mapa definido en una variable de entorno por el mecanismo de autenticación o de consulta de sesiones de tu aplicación. -
En el código del servidor, pasa el ID de tu flujo de trabajo y tu clave secreta al punto de acceso de sesiones.
El secreto de cliente es la credencial que usa tu frontend de ChatKit para abrir o renovar la sesión de chat. Pásalo de inmediato a la biblioteca cliente de ChatKit sin almacenarlo.
Consulta el repositorio de chatkit-js en GitHub.
Para Go, ejecuta
go get github.com/openai/openai-go/v3@v3.70.0. Para Java, agrega la dependencia de Mavencom.openai:openai-java:4.75.1.Crea un token de sesión de ChatKitJavaScriptexport default async function getChatKitSessionToken(deviceId) { const apiKey = process.env.OPENAI_API_KEY; if (!apiKey) { throw new Error("OPENAI_API_KEY is required"); } const response = await fetch("https://api.openai.com/v1/chatkit/sessions", { method: "POST", headers: { "Content-Type": "application/json", "OpenAI-Beta": "chatkit_beta=v1", Authorization: `Bearer ${apiKey}`, }, body: JSON.stringify({ workflow: { id: "wf_68df4b13b3588190a09d19288d4610ec0df388c3983f58d1" }, user: deviceId, }), }); if (!response.ok) { throw new Error( `Failed to create a ChatKit session: ${response.status} ${await response.text()}` ); } const { client_secret } = await response.json(); if (!client_secret) { throw new Error("ChatKit session response did not include client_secret"); } return client_secret; } -
En el directorio de tu proyecto, instala los bindings de ChatKit para React:
npm install @openai/chatkit-react -
Agrega el script JS de ChatKit a tu página. Coloca este fragmento en el
<head>de la página o donde cargues los scripts. El navegador descargará y ejecutará ChatKit.index.html<script src="https://cdn.platform.openai.com/deployments/chatkit/chatkit.js" async ></script> -
Muestra ChatKit en tu interfaz. Pasa al componente
MyChatde React una funcióngetAppAuthTokenque devuelva el token de portador del usuario actual. Si usas la pestaña de JavaScript, asegúrate de que esa misma función esté disponible en el ámbito del fragmento de código. Este código envía la credencial a tu servidor, obtiene el secreto de cliente y monta un widget de chat en vivo conectado a tu flujo de trabajo.Código de tu frontendreactimport { ChatKit, useChatKit } from '@openai/chatkit-react'; export function MyChat({ getAppAuthToken }) { const { control } = useChatKit({ api: { async getClientSecret(existing) { if (existing) { // implement session refresh } const appAuthToken = await getAppAuthToken(); const res = await fetch('/api/chatkit/session', { method: 'POST', headers: { 'Authorization': 'Bearer ' + appAuthToken, 'Content-Type': 'application/json', }, }); const { client_secret } = await res.json(); return client_secret; }, }, }); return <ChatKit control={control} className="h-[600px] w-[320px]" />; }
3. Desarrolla y perfecciona tu chat
Consulta la documentación sobre temas personalizados, widgets y acciones para saber más sobre el funcionamiento de ChatKit. También puedes explorar los siguientes recursos para probar tu chat, ajustar los prompts y agregar widgets y herramientas.
Desarrolla tu implementación
Aprende a gestionar la autenticación, aplicar temas, personalizar el chat y más.
Agrega almacenamiento en el servidor, control de acceso, herramientas y otras funciones del backend.
Explora el repositorio de ChatKit para JavaScript.
Explora la interfaz de ChatKit
Prueba una demo interactiva de ChatKit.
Explora los widgets disponibles.
Aprende con una demo interactiva que puedes probar por tu cuenta.
Consulta ejemplos funcionales
Explora ejemplos funcionales de ChatKit para inspirarte.
Clona el repositorio para empezar con una plantilla totalmente funcional.
Próximos pasos
Cuando estés conforme con tu implementación de ChatKit, aprende a optimizarla con evaluaciones. Si vas a crear una aplicación con ChatKit o a migrar una aplicación de ChatKit existente para que deje de usar un flujo de trabajo alojado en Agent Builder, consulta la documentación de la integración avanzada.