部署到 Vercel Edge(Next.js)
项目脚手架
npx create-next-app@latest my-agent --ts --app --no-tailwindcd my-agentnpm install @hasheeai/agent-sdk-tsRoute Handler
import { createWebhookDispatcher, restRequest } from "@hasheeai/agent-sdk-ts";
export const runtime = "edge";
const dispatcher = createWebhookDispatcher({ agentId: process.env.HASHEE_AGENT_ID!, token: process.env.HASHEE_AGENT_TOKEN!, secret: process.env.HASHEE_WEBHOOK_SECRET!, privateKeyBase64: process.env.HASHEE_X25519_PRIVATE_BASE64!, signingPrivateKeyBase64: process.env.HASHEE_ED25519_PRIVATE_BASE64!,
onMessage: async (msg) => { if (msg.payload?.type !== "text") return; const reply = `Echo: ${msg.payload.text}`; await restRequest({ method: "POST", baseUrl: "https://api.hashee.ai", path: `/agents/${process.env.HASHEE_AGENT_ID}/messages`, token: process.env.HASHEE_AGENT_TOKEN!, body: { conversation_id: msg.conversation_id, payload: { type: "text", text: reply } }, }); },});
export async function POST(req: Request): Promise<Response> { try { await dispatcher.handle(Object.fromEntries(req.headers), await req.text()); return new Response("ok", { status: 200 }); } catch (err: any) { return new Response("error", { status: err?.statusCode ?? 500 }); }}环境变量
Vercel Dashboard → Settings → Environment Variables:
HASHEE_AGENT_IDHASHEE_AGENT_TOKEN ← 标 sensitiveHASHEE_WEBHOOK_SECRET ← sensitiveHASHEE_X25519_PRIVATE_BASE64 ← sensitiveHASHEE_ED25519_PRIVATE_BASE64 ← sensitive或 CLI:
vercel env add HASHEE_AGENT_TOKENvercel env add HASHEE_WEBHOOK_SECRET# ...部署
vercel deploy --prod# → https://my-agent.vercel.app/api/hashee/webhook注册 webhook
同 Cloudflare 配方 的”注册 webhook”步骤。