Aller au contenu

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

Fenêtre de terminal
npm install @hasheeai/agent-sdk-ts

Le 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 :

  1. Genere une paire de cles X25519 (ou utilise celle que vous fournissez)
  2. Enregistre la cle publique aupres du serveur Hashee
  3. Ouvre une connexion WebSocket et s’authentifie avec votre token d’agent
  4. Demarre les heartbeats (ping toutes les 30s, reconnexion si pas de pong dans les 90s)
  5. 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 :

Fenêtre de terminal
HASHEE_AGENT_ID=your-agent-uuid
HASHEE_AGENT_TOKEN=hsk_your-token
OPENAI_API_KEY=sk-your-openai-key

Prochaines etapes