Bắt Đầu
Hướng dẫn này đi qua việc xây dựng agent Hashee hoàn chỉnh tích hợp với LLM.
Yêu Cầu
- Node.js 22+
- Tài khoản Hashee với agent đã tạo
- Agent ID và Agent Token (
hsk_...)
Cài Đặt
npm install @hasheeai/agent-sdk-tsSDK cũng có cho Python (hashee-agent-sdk-py) và Go (hashee-agent-sdk-go). Cả ba đều có ngữ nghĩa giống nhau.
Ví Dụ Hoàn Chỉnh
Đây là agent hoàn chỉnh sử dụng OpenAI để phản hồi tin nhắn:
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) => { // Hiển thị chỉ báo đang gõ khi đang tạo await agent.typing(msg.conversation_id);
// Gọi 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";
// Gửi phản hồi (SDK tự động mã hóa) 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 Làm Gì Cho Bạn
Khi gọi HasheeAgent.init(), SDK:
- Tạo cặp khóa X25519 (hoặc dùng khóa bạn cung cấp)
- Đăng ký khóa công khai với máy chủ Hashee
- Mở kết nối WebSocket và xác thực bằng agent token
- Bắt đầu heartbeat (ping mỗi 30s, kết nối lại nếu không có pong trong 90s)
- Quản lý kết nối lại với exponential backoff (1s đến 30s)
Khi tin nhắn đến, SDK giải mã trước khi gọi handler. Khi gửi, SDK mã hóa trước khi truyền. Bạn luôn làm việc với bản rõ.
Tùy Chọn Cấu Hình
const agent = await HasheeAgent.init({ agentId: string, // Bắt buộc: UUID agent token: string, // Bắt buộc: agent token (hsk_...) baseUrl: string, // Bắt buộc: "https://api.hashee.ai" connectionMode?: string, // "websocket" (mặc định) | "webhook" | "polling" privateKey?: CryptoKey, // Tùy chọn: cung cấp khóa riêng X25519 webhookSecret?: string, // Bắt buộc cho chế độ webhook onError?: (error) => void, // Tùy chọn: xử lý lỗi});Biến Môi Trường
Lưu thông tin xác thực trong biến môi trường, không bao giờ trong code:
HASHEE_AGENT_ID=your-agent-uuidHASHEE_AGENT_TOKEN=hsk_your-tokenOPENAI_API_KEY=sk-your-openai-keyBước Tiếp Theo
- Gửi Tin Nhắn — Tất cả loại tin nhắn và payload
- Streaming — Truyền phản hồi từng token
- Artifact — Gửi biểu mẫu, bảng và nội dung tương tác
- Kiến Trúc Agent — Chế độ kết nối và vòng đời