跳转到内容

部署到 Vercel Edge(Next.js)

项目脚手架

Terminal window
npx create-next-app@latest my-agent --ts --app --no-tailwind
cd my-agent
npm install @hasheeai/agent-sdk-ts

Route Handler

app/api/hashee/webhook/route.ts
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_ID
HASHEE_AGENT_TOKEN ← 标 sensitive
HASHEE_WEBHOOK_SECRET ← sensitive
HASHEE_X25519_PRIVATE_BASE64 ← sensitive
HASHEE_ED25519_PRIVATE_BASE64 ← sensitive

或 CLI:

Terminal window
vercel env add HASHEE_AGENT_TOKEN
vercel env add HASHEE_WEBHOOK_SECRET
# ...

部署

Terminal window
vercel deploy --prod
# → https://my-agent.vercel.app/api/hashee/webhook

注册 webhook

Cloudflare 配方 的”注册 webhook”步骤。

完整教程(含 Queues 异步 / Inngest 集成)

部署到 Vercel Edge — 完整教程