O ChatKit é a melhor maneira de criar experiências de chat com agentes de IA. Você pode criar um assistente para consultar uma base de conhecimento interna, ajudar o RH a integrar novos funcionários, apoiar pesquisas, orientar compras ou agendar compromissos. Também pode criar um bot para solucionar problemas, um consultor de planejamento financeiro ou um agente de suporte. Em todos esses casos, o ChatKit oferece um chat incorporável e personalizável que cuida de todos os detalhes da experiência do usuário.
Use os widgets de interface incorporáveis, os prompts personalizáveis, o suporte a chamadas de ferramentas, os anexos de arquivos e as visualizações da cadeia de pensamento do ChatKit para criar agentes sem precisar recriar a interface de chat.
Visão geral
Escolha uma das duas formas de integrar o ChatKit:
- Integração com servidor próprio. Execute o ChatKit na sua infraestrutura. Use o SDK do ChatKit para Python e conecte-se a qualquer serviço com agentes de IA, inclusive a um serviço criado com o SDK de Agentes. Use widgets para criar o frontend.
- Integração existente com hospedagem no Agent Builder. Se você já usa o ChatKit com um fluxo de trabalho do Agent Builder, pode continuar usando esse fluxo hospedado durante o período de transição do Agent Builder.
A OpenAI está descontinuando o Agent Builder. Quem já usa o produto pode continuar usando-o durante o período de transição. O encerramento está previsto para 30 de novembro de 2026. O ChatKit continua disponível. Para novos projetos ou para planejar uma migração, use as integrações avançadas do ChatKit com sua própria implementação de agente no servidor. Para orientações sobre a transição, consulte Como migrar do Agent Builder.
Primeiros passos com o ChatKit


Incorpore o ChatKit ao seu frontend
Use essa opção somente se sua implementação do ChatKit já usa um fluxo de trabalho do Agent Builder. Para criar aplicativos com o ChatKit ou migrar antes do encerramento do Agent Builder, use a integração avançada para conectar o ChatKit à sua própria implementação de agente no servidor.
A configuração do ChatKit com um fluxo de trabalho hospedado existente tem três etapas. Abra o fluxo de trabalho enquanto o Agent Builder ainda estiver disponível. Em seguida, configure o ChatKit e adicione recursos ao seu chat.

1. Use um fluxo de trabalho hospedado existente
Abra seu fluxo de trabalho no Agent Builder para obter o ID do fluxo. Para planejar a transição, consulte Como migrar do Agent Builder.
O chat incorporado ao seu frontend usará o fluxo de trabalho que você selecionar.
2. Configure o ChatKit no seu produto
Para configurar o ChatKit, você vai criar uma sessão do ChatKit e um endpoint no servidor, informar o ID do fluxo de trabalho, repassar o segredo do cliente e adicionar um script para incorporar o ChatKit ao seu site.
Aviso importante de segurança: Ao criar uma sessão do ChatKit, você deve informar o parâmetro user, cujo valor deve ser exclusivo para cada usuário final. Seu servidor deve autenticar os usuários do aplicativo e fornecer nesse parâmetro um identificador exclusivo para cada um.
-
Gere um token de cliente no seu servidor.
Este exemplo inicia um serviço que cria uma sessão do ChatKit pela API da OpenAI e retorna o segredo do cliente dessa sessão:
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}Se você usa Ruby, instale o WEBrick com
gem install webrick.Antes de iniciar o serviço, substitua
wf_123pelo ID do seu fluxo de trabalho e definaOPENAI_API_KEYeCHATKIT_AUTHENTICATED_USERS. O valor da segunda variável é um mapa JSON que associa os tokens bearer do aplicativo a IDs de usuário estáveis. Em produção, substitua esse mapa definido na variável de ambiente pelo mecanismo de autenticação ou de consulta de sessões do seu aplicativo. -
No código do servidor, envie o ID do fluxo de trabalho e sua chave secreta ao endpoint de sessão.
O segredo do cliente é a credencial que o frontend do ChatKit usa para abrir ou renovar a sessão de chat. Não armazene esse segredo. Repasse-o imediatamente à biblioteca cliente do ChatKit.
Consulte o repositório chatkit-js no GitHub.
Se você usa Go, execute
go get github.com/openai/openai-go/v3@v3.70.0. Se usa Java, adicione a dependência Mavencom.openai:openai-java:4.75.1.Crie um token de sessão do 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; } -
No diretório do projeto, instale o pacote de integração do ChatKit com React:
npm install @openai/chatkit-react -
Adicione o script JS do ChatKit à página. Insira este trecho no elemento
<head>da página ou no local em que você carrega os scripts. O navegador vai baixar e executar o ChatKit.index.html<script src="https://cdn.platform.openai.com/deployments/chatkit/chatkit.js" async ></script> -
Renderize o ChatKit na sua interface. Passe ao componente React
MyChatuma funçãogetAppAuthTokenque retorne o token bearer do usuário atual. Se você usar a aba JavaScript, disponibilize a mesma função no escopo do trecho de código. Esse código envia a credencial ao seu servidor, obtém o segredo do cliente e monta um widget de chat ativo, conectado ao seu fluxo de trabalho.Código do seu 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. Desenvolva e aprimore seu chat
Consulte a documentação sobre personalização de temas, widgets e ações para saber mais sobre o funcionamento do ChatKit. Você também pode explorar os recursos a seguir para testar seu chat, refinar os prompts e adicionar widgets e ferramentas.
Desenvolva sua implementação
Aprenda a implementar a autenticação, aplicar temas, personalizar o chat e muito mais.
Adicione armazenamento no servidor, controle de acesso, ferramentas e outros recursos de backend.
Confira o repositório do ChatKit para JavaScript.
Explore a interface do ChatKit
Experimente uma demonstração interativa do ChatKit.
Explore os widgets disponíveis.
Aprenda na prática com uma demonstração interativa.
Veja exemplos em funcionamento
Veja exemplos do ChatKit em funcionamento e inspire-se.
Clone o repositório para começar com um modelo de aplicativo totalmente funcional.
Próximos passos
Quando sua implementação do ChatKit estiver como você quer, aprenda a otimizá-la com avaliações. Para criar aplicativos com o ChatKit ou migrar um aplicativo existente que usa um fluxo de trabalho hospedado no Agent Builder, consulte a documentação da integração avançada.