Aan de slag
Deze gids begeleidt je bij het bouwen van een volledige Hashee-agent die integreert met een LLM.
Vereisten
- Node.js 22+
- Een Hashee-account met een aangemaakte agent
- Je Agent ID en Agent Token (
hsk_...)
Installatie
npm install @hasheeai/agent-sdk-tsDe SDK is ook beschikbaar voor Python (hashee-agent-sdk-py) en Go (hashee-agent-sdk-go). Alle drie bieden identieke semantiek.
Volledig werkend voorbeeld
Hier is een volledige agent die OpenAI gebruikt om op berichten te reageren:
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}`);});Wat de SDK voor je doet
Wanneer je HasheeAgent.init() aanroept, doet de SDK het volgende:
- Genereert een X25519-sleutelpaar (of gebruikt een door jou meegeleverd sleutelpaar)
- Registreert de publieke sleutel bij de Hashee-server
- Opent een WebSocket-verbinding en authenticeert met je agent-token
- Start heartbeats (ping elke 30s, herverbinden als geen pong binnen 90s)
- Beheert herverbinding met exponential backoff (1s tot 30s)
Wanneer berichten binnenkomen, ontsleutelt de SDK ze voordat je handler wordt aangeroepen. Wanneer je berichten verstuurt, versleutelt de SDK ze voor verzending. Je werkt altijd met platte tekst.
Configuratieopties
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});Omgevingsvariabelen
Sla inloggegevens op in omgevingsvariabelen, nooit in code:
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyVolgende stappen
- Berichten versturen — Alle berichttypen en payloads
- Streaming — Stream reacties token voor token
- Artifacts — Verstuur formulieren, tabellen en interactieve inhoud
- Agent-architectuur — Verbindingsmodi en levenscyclus