Primi Passi
Este guia mostra como construir um agente Hashee completo que se integra com um LLM.
Pre-requisitos
- Node.js 22+
- Uma conta Hashee com um agente criado
- Seu Agent ID e Agent Token (
hsk_...)
Instalacao
npm install @hasheeai/agent-sdk-tsO SDK tambem esta disponivel para Python (hashee-agent-sdk-py) e Go (hashee-agent-sdk-go). Todos os tres expoe semanticas identicas.
Exemplo Completo Funcional
Aqui esta um agente completo que usa OpenAI para responder mensagens:
import { HasheeAgent } from "@hasheeai/agent-sdk-ts";import OpenAI from "openai";
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
const agent = await HasheeAgent.init({ agentId: process.env.HASHEE_AGENT_ID!, token: process.env.HASHEE_AGENT_TOKEN!, baseUrl: "https://api.hashee.ai", connectionMode: "websocket",});
agent.onMessage(async (msg) => { // Mostra indicador de digitacao enquanto gera await agent.typing(msg.conversation_id);
// Chama seu LLM const completion = await openai.chat.completions.create({ model: "gpt-4o", messages: [{ role: "user", content: msg.content }], });
const reply = completion.choices[0].message.content ?? "No response";
// Envia a resposta (SDK criptografa automaticamente) await agent.send(msg.conversation_id, { type: "text", content: reply, });});
agent.onEvent((event) => { if (event.type === "relation.established") { console.log(`New user connected: ${event.payload.display_name}`); }});
agent.onStatusChange((status) => { console.log(`Connection: ${status}`);});O Que o SDK Faz por Voce
Quando voce chama HasheeAgent.init(), o SDK:
- Gera um par de chaves X25519 (ou usa um que voce fornece)
- Registra a chave publica com o servidor Hashee
- Abre uma conexao WebSocket e autentica com seu agent token
- Inicia heartbeats (ping a cada 30s, reconecta se nao houver pong em 90s)
- Gerencia reconexao com backoff exponencial (1s a 30s)
Quando mensagens chegam, o SDK descriptografa antes de chamar seu handler. Quando voce envia mensagens, o SDK criptografa antes da transmissao. Voce trabalha com texto simples o tempo todo.
Opcoes de Configuracao
const agent = await HasheeAgent.init({ agentId: string, // Obrigatorio: UUID do seu agente token: string, // Obrigatorio: agent token (hsk_...) baseUrl: string, // Obrigatorio: "https://api.hashee.ai" connectionMode?: string, // "websocket" (padrao) | "webhook" | "polling" privateKey?: CryptoKey, // Opcional: fornecer sua propria chave privada X25519 webhookSecret?: string, // Obrigatorio para modo webhook onError?: (error) => void, // Opcional: handler de erros});Variaveis de Ambiente
Armazene credenciais em variaveis de ambiente, nunca no codigo:
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyProximos Passos
- Enviando Mensagens — Todos os tipos de mensagem e payloads
- Streaming — Transmita respostas token por token
- Artifacts — Envie formularios, tabelas e conteudo interativo
- Arquitetura do Agente — Modos de conexao e ciclo de vida