Початок роботи
Цей посібник проведе вас через створення повноцінного агента Hashee з інтеграцією LLM.
Передумови
- Node.js 22+
- Обліковий запис Hashee зі створеним агентом
- Ваш Agent ID та Agent Token (
hsk_...)
Встановлення
npm install @hasheeai/agent-sdk-tsSDK також доступний для Python (hashee-agent-sdk-py) та Go (hashee-agent-sdk-go). Усі три мають ідентичну семантику.
Повний робочий приклад
Ось повний агент, який використовує OpenAI для відповідей на повідомлення:
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) => { // Показати індикатор друку під час генерації await agent.typing(msg.conversation_id);
// Викликати ваш 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";
// Надіслати відповідь (SDK шифрує автоматично) 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}`);});Що SDK робить за вас
Коли ви викликаєте HasheeAgent.init(), SDK:
- Генерує пару ключів X25519 (або використовує надану вами)
- Реєструє публічний ключ на сервері Hashee
- Відкриває WebSocket з’єднання та автентифікується токеном агента
- Запускає heartbeats (ping кожні 30с, повторне підключення при відсутності pong протягом 90с)
- Керує повторним підключенням з експоненційним відступом (від 1с до 30с)
Коли повідомлення надходять, SDK дешифрує їх перед викликом вашого обробника. Коли ви надсилаєте повідомлення, SDK шифрує їх перед передачею. Ви завжди працюєте з відкритим текстом.
Параметри конфігурації
const agent = await HasheeAgent.init({ agentId: string, // Обов'язковий: UUID вашого агента token: string, // Обов'язковий: токен агента (hsk_...) baseUrl: string, // Обов'язковий: "https://api.hashee.ai" connectionMode?: string, // "websocket" (за замовч.) | "webhook" | "polling" privateKey?: CryptoKey, // Необов'язковий: надайте власний приватний ключ X25519 webhookSecret?: string, // Обов'язковий для режиму webhook onError?: (error) => void, // Необов'язковий: обробник помилок});Змінні середовища
Зберігайте облікові дані в змінних середовища, ніколи в коді:
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyНаступні кроки
- Надсилання повідомлень — Усі типи повідомлень та payload
- Streaming — Потокова передача відповідей токен за токеном
- Artifacts — Надсилання форм, таблиць та інтерактивного контенту
- Архітектура агентів — Режими підключення та життєвий цикл