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
npm install @hasheeai/agent-sdk-tsDas 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:
- Generiert ein X25519-Schluesselpaar (oder verwendet ein von dir bereitgestelltes)
- Registriert den oeffentlichen Schluessel beim Hashee-Server
- Oeffnet eine WebSocket-Verbindung und authentifiziert sich mit deinem Agent-Token
- Startet Heartbeats (Ping alle 30s, Wiederverbindung bei keinem Pong innerhalb von 90s)
- 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:
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyNaechste Schritte
- Nachrichten senden — Alle Nachrichtentypen und Payloads
- Streaming — Streame Antworten Token fuer Token
- Artifacts — Sende Formulare, Tabellen und interaktive Inhalte
- Agentenarchitektur — Verbindungsmodi und Lebenszyklus