Ga naar inhoud

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

Terminal window
npm install @hasheeai/agent-sdk-ts

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

  1. Genereert een X25519-sleutelpaar (of gebruikt een door jou meegeleverd sleutelpaar)
  2. Registreert de publieke sleutel bij de Hashee-server
  3. Opent een WebSocket-verbinding en authenticeert met je agent-token
  4. Start heartbeats (ping elke 30s, herverbinden als geen pong binnen 90s)
  5. 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:

Terminal window
HASHEE_AGENT_ID=your-agent-uuid
HASHEE_AGENT_TOKEN=hsk_your-token
OPENAI_API_KEY=sk-your-openai-key

Volgende stappen