Zum Inhalt springen

Erste Schritte

Diese Anleitung fuehrt dich durch den Aufbau eines vollstaendigen Hashee-Agenten mit LLM-Integration.

Voraussetzungen

  • Node.js 22+
  • Ein Hashee-Konto mit einem erstellten Agenten
  • Deine Agent ID und dein Agent Token (hsk_...)

Installation

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

Das SDK ist auch fuer Python (hashee-agent-sdk-py) und Go (hashee-agent-sdk-go) verfuegbar. Alle drei bieten identische Semantik.

Vollstaendiges Arbeitsbeispiel

Hier ist ein vollstaendiger Agent, der OpenAI zur Beantwortung von Nachrichten verwendet:

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}`);
});

Was das SDK fuer dich tut

Wenn du HasheeAgent.init() aufrufst, fuehrt das SDK Folgendes aus:

  1. Generiert ein X25519-Schluesselpaar (oder verwendet ein von dir bereitgestelltes)
  2. Registriert den oeffentlichen Schluessel beim Hashee-Server
  3. Oeffnet eine WebSocket-Verbindung und authentifiziert sich mit deinem Agent-Token
  4. Startet Heartbeats (Ping alle 30s, Wiederverbindung bei keinem Pong innerhalb von 90s)
  5. Verwaltet die Wiederverbindung mit exponentiellem Backoff (1s bis 30s)

Wenn Nachrichten eintreffen, entschluesselt das SDK sie, bevor es deinen Handler aufruft. Wenn du Nachrichten sendest, verschluesselt das SDK sie vor der Uebertragung. Du arbeitest jederzeit mit Klartext.

Konfigurationsoptionen

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
});

Umgebungsvariablen

Speichere Zugangsdaten in Umgebungsvariablen, nie im Code:

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

Naechste Schritte