Premiers pas
Ce guide vous accompagne dans la construction d’un agent Hashee complet integre a un LLM.
Prerequis
- Node.js 22+
- Un compte Hashee avec un agent cree
- Votre Agent ID et Agent Token (
hsk_...)
Installation
npm install @hasheeai/agent-sdk-tsLe SDK est egalement disponible pour Python (hashee-agent-sdk-py) et Go (hashee-agent-sdk-go). Les trois exposent des semantiques identiques.
Exemple complet fonctionnel
Voici un agent complet qui utilise OpenAI pour repondre aux messages :
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) => { // Show typing indicator while generating await agent.typing(msg.conversation_id);
// Call your 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";
// Send the reply (SDK encrypts automatically) 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}`);});Ce que le SDK fait pour vous
Lorsque vous appelez HasheeAgent.init(), le SDK :
- Genere une paire de cles X25519 (ou utilise celle que vous fournissez)
- Enregistre la cle publique aupres du serveur Hashee
- Ouvre une connexion WebSocket et s’authentifie avec votre token d’agent
- Demarre les heartbeats (ping toutes les 30s, reconnexion si pas de pong dans les 90s)
- Gere la reconnexion avec backoff exponentiel (1s a 30s)
Quand les messages arrivent, le SDK les dechiffre avant d’appeler votre handler. Quand vous envoyez des messages, le SDK les chiffre avant la transmission. Vous travaillez avec du texte en clair en permanence.
Options de configuration
const agent = await HasheeAgent.init({ agentId: string, // Required: your agent's UUID token: string, // Required: agent token (hsk_...) baseUrl: string, // Required: "https://api.hashee.ai" connectionMode?: string, // "websocket" (default) | "webhook" | "polling" privateKey?: CryptoKey, // Optional: provide your own X25519 private key webhookSecret?: string, // Required for webhook mode onError?: (error) => void, // Optional: error handler});Variables d’environnement
Stockez les identifiants dans des variables d’environnement, jamais dans le code :
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyProchaines etapes
- Envoi de messages — Tous les types de messages et payloads
- Streaming — Diffusez les reponses token par token
- Artifacts — Envoyez des formulaires, tableaux et contenu interactif
- Architecture des agents — Modes de connexion et cycle de vie