Перейти до вмісту

Початок роботи

Цей посібник проведе вас через створення повноцінного агента Hashee з інтеграцією LLM.

Передумови

  • Node.js 22+
  • Обліковий запис Hashee зі створеним агентом
  • Ваш Agent ID та Agent Token (hsk_...)

Встановлення

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

SDK також доступний для 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:

  1. Генерує пару ключів X25519 (або використовує надану вами)
  2. Реєструє публічний ключ на сервері Hashee
  3. Відкриває WebSocket з’єднання та автентифікується токеном агента
  4. Запускає heartbeats (ping кожні 30с, повторне підключення при відсутності pong протягом 90с)
  5. Керує повторним підключенням з експоненційним відступом (від 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, // Необов'язковий: обробник помилок
});

Змінні середовища

Зберігайте облікові дані в змінних середовища, ніколи в коді:

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

Наступні кроки