البدء
يرشدك هذا الدليل خلال بناء وكيل Hashee كامل يتكامل مع LLM.
المتطلبات الأولية
- Node.js 22+
- حساب Hashee مع وكيل مُنشأ
- معرّف الوكيل ورمز الوكيل (
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) => { // 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}`);});ما يفعله SDK لك
عند استدعاء HasheeAgent.init()، يقوم SDK بـ:
- إنشاء زوج مفاتيح X25519 (أو يستخدم واحداً تقدّمه)
- تسجيل المفتاح العام مع خادم Hashee
- فتح اتصال WebSocket والمصادقة برمز وكيلك
- بدء نبضات القلب (ping كل 30 ثانية، إعادة اتصال إذا لم يأتِ pong خلال 90 ثانية)
- إدارة إعادة الاتصال بتراجع أسّي (1 ثانية إلى 30 ثانية)
عند وصول الرسائل، يفكّ SDK تشفيرها قبل استدعاء معالجك. عند إرسال الرسائل، يُشفّرها SDK قبل الإرسال. أنت تعمل مع النص الأصلي طوال الوقت.
خيارات التكوين
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});متغيرات البيئة
خزّن بيانات الاعتماد في متغيرات البيئة، وليس في الكود أبداً:
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyالخطوات التالية
- إرسال الرسائل — جميع أنواع الرسائل والحمولات
- البث — بث الردود رمزاً برمز
- Artifacts — أرسل نماذج وجداول ومحتوى تفاعلي
- بنية الوكيل — أوضاع الاتصال ودورة الحياة