Skip to main content
Edge Tools let you give your LLM calls real capabilities without re-implementing tool glue across every service. Shared tools are common capabilities that Edgee runs at the edge (e.g. common primitives).

Why Edge Tools?

  • Less application glue — Define tools once at the gateway instead of re-implementing them across services.
  • Lower latency — Execute tools closer to users and providers to reduce round-trips.
  • Stronger control — Centralize permissions, audit logs, and safety policies for tool execution.
Your app calls Edgee; when a model requests tool execution, Edgee runs the shared tool at the edge, applies policies, and returns the result. Observability captures the full trace.

Activation and hydration

  1. In the Edgee Console, open your organization and go to Tools.
  2. For each tool you want to use, Activate for organization. Once activated, the tool is available for all API keys and the org — but only via the API: you must send edgee_tool_ids in the request to use it (see Manual edgee tool call below).
  3. Optionally enable hydration so the gateway auto-injects the tool definitions:
    • Hydrate for entire org — The gateway adds the tool to every request from the organization. You do not need to send edgee_tool_ids for that tool; it is injected automatically.
    • Hydrate for specific API keys — The gateway adds the tool only for requests using the selected API keys. For those keys, the tool is auto-injected; for others, send edgee_tool_ids if the tool is activated.
Only tools that are activated for your API key can be used. If you send edgee_tool_ids with an ID that is not activated or not allowed for the key, the request returns 400 with invalid_edgee_tool_ids.
Tools configuration page showing Current time tool with Activate for organization and Hydrate for all org calls toggles

Manual edgee tool call

When a tool is activated but not hydrated for your scope, send edgee_tool_ids in the completion request body with the list of tool IDs you want (e.g. ["edgee_current_time", "edgee_generate_uuid"]). Copy the tool ID from the console (click to copy next to each tool). When a tool is hydrated for your org or API key, you can omit it from edgee_tool_ids — the gateway injects it automatically. Example with curl:
curl -X POST https://api.edgee.ai/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-4",
    "messages": [{"role": "user", "content": "What time is it in Paris?"}],
    "edgee_tool_ids": ["edgee_current_time"]
  }'
Example with the OpenAI-compatible SDK (pass edgee_tool_ids in the body when not using hydration):
const completion = await openai.chat.completions.create({
  model: "anthropic/claude-sonnet-4",
  messages: [{ role: "user", content: "What time is it in Paris?" }],
  edgee_tool_ids: ["edgee_current_time", "edgee_generate_uuid"],
});
If you omit edgee_tool_ids (or send an empty array), the gateway injects only tools that have hydration enabled for your org or API key. If you send edgee_tool_ids, those IDs are validated: any ID that is not activated or not allowed for your API key returns 400 with code invalid_edgee_tool_ids and a message listing the invalid IDs.

Available tools

These shared tools are available today. All Edge Tools use the edgee_ prefix.
  • edgee_current_time — Get the current date and time in a given timezone (IANA name). Defaults to UTC if not provided. Parameters: timezone (optional string) — IANA timezone, e.g. America/New_York, Europe/London, Asia/Tokyo.
  • edgee_generate_uuid — Generate a random UUID (v4). Parameters: None.
Example: if the model calls edgee_current_time with {"timezone": "Europe/Paris"}, the gateway returns the current time in Paris. If the model calls edgee_generate_uuid, the gateway returns a new UUID.

Relation to function calling

The SDK tools documentation describes how to pass tools (function definitions) in each request so the model can request calls — that’s client-side function calling. Edge Tools are shared tools that run at the gateway, so you don’t have to run and wire every tool in your own backend.