createAllemAgentHandler

Server-side request handler for agentic workflows with tool calling. Works with Next.js App Router, Remix, and any Web Request/Response framework.

import { createAllemAgentHandler } from "@allem-sdk/agents";

Options

PropTypeDefaultDescription
providers*Record<string, (modelId?) => LanguageModel>Provider factory map
defaultProviderstring"google"Default provider name
defaultModelstringDefault model ID
systemPromptstringDefault system prompt
toolsToolSetTools available to the agent

Usage

// app/api/agent/route.ts
import { createAllemAgentHandler, createAllemTool } from "@allem-sdk/agents";
import { google } from "@ai-sdk/google";
import { z } from "zod";

const weatherTool = createAllemTool({
  description: "Get the current weather for a location",
  parameters: z.object({ city: z.string() }),
  execute: async ({ city }) => {
    return { city, temperature: 72, condition: "sunny" };
  },
});

export const POST = createAllemAgentHandler({
  providers: {
    google: (model) => google(model ?? "gemini-2.0-flash"),
  },
  tools: { weather: weatherTool },
});

Environment variables

Set GOOGLE_GENERATIVE_AI_API_KEY, ANTHROPIC_API_KEY, or OPENAI_API_KEY in your .env.local file.