Skip to main content
The Tools Library lets you create tools in a shared library and assign them to any assistant. Previously, tools were tied to individual assistants — if multiple assistants needed the same tool, you had to recreate it each time.

Overview

With the Tools Library, you define a tool once and reuse it across all your assistants. Updating a shared tool keeps behavior consistent across every assistant that uses it.

Capabilities

  • Shared tools — Create tools in a central library and assign them to any assistant.
  • Reduced duplication — Eliminates recreating identical tools across assistants with similar workflows.
  • Centralized configuration — Update a tool in one place and maintain consistency across assistants.
  • Faster deployment — Speed up assistant creation using prebuilt tools from the library.
All tool types are supported in the library, including webhook tools, client-side tools, handoff, transfer, and hangup tools.

Getting started

  1. Log in to the Mission Control Portal.
  2. Navigate to AI, Storage and Compute > AI Tools.
  3. Click Create New Tool to add a new tool to the library.
  4. When building or editing an assistant, assign tools from the library instead of creating them inline. Tools Library overview
You can also assign library tools directly from the assistant builder.

Updating assistants with library tools

When you update an assistant with POST /v2/ai/assistants/{assistant_id} (the Update Assistant API also accepts PATCH), tools (inline definitions) and tool_ids (library tools) are two independent channels:
  • A tools array you send fully replaces the assistant’s inline tools; omit the field to leave them unchanged. The same applies to tool_ids for attached library tools.
  • Every tool type except function, webhook, and client_side_tool allows at most one instance per assistant, counted across inline tools and library tool_ids combined. Sending a duplicate of such a type returns HTTP 400 with error code 10015.
  • GET responses merge library tools into the tools array, each flagged "shared": true (the flag is read-only — the server sets it; it is not accepted in requests). On update, omit shared: true tools from the tools array and manage them through tool_ids instead — re-sending their definitions creates an inline duplicate, rejected with 10015 when the type allows only one instance.

Migrating existing tools

Existing assistants with legacy (inline) tools continue to work. You can migrate legacy tools to the library at your own pace.
Migration is optional. Legacy tools remain functional. You can migrate tools one at a time as needed.