Scope
- Provider path: the Anthropic and Gemini planners offer registered tools to the model. The OpenAI planner does not call tools today.
- Built-in tools:
unsplash.search— licensed photo search (see schema below). Registered by default.image.generate— AI image generation via OpenAI (gpt-image-1-minifor draft,gpt-image-2for final) or Google Gemini (gemini-3.1-flash-lite-image). Registered whenOPENAI_API_KEYorGOOGLE_GENAI_API_KEYis set. Full reference: Asset Manager & AI Images.gdrive.browse— images from a Google Drive folder. Registered whenGOOGLE_DRIVE_FOLDER_IDis set.
- The standalone server registers the built-ins at startup. In library mode they are opt-in:
createOrchestrator({ builtinTools: true })for the same env-gated defaults, or a subset such asbuiltinTools: ["unsplash-search"].
Internal Tool Contract
Every tool is registered with aToolManifest:
name: unique id (for exampleunsplash.search,pim.getProduct)description: natural-language purposeinputSchema: JSON Schema for tool inputoutputSchema: JSON Schema for tool outputcapability:readorwritetimeoutMs: per-call timeoutretryPolicy:{ maxAttempts, backoffMs? }idempotent: whether identical calls can be replayed safely
siteIdsessionIduserId(optional)traceIdplannerProvider
okdata(on success)error{ code, message, retryable }(on failure)latencyMsattempts
Default Governance Policy
- Read tools auto-run.
- Write tools require approval (runtime blocks direct auto execution).
Anthropic Adapter Behavior
Planner exposes tools as Anthropictools[] with input_schema.
The planner loop supports:
- model requests tool call (
tool_use) - orchestrator executes tool server-side
- orchestrator returns
tool_result - model continues until
submit_edit_plan
submit_edit_plan is still validated by existing normalizer + editPlanSchema.
Unsplash Tool
unsplash.search input:
unsplash.search output:
unsplash.search are covered by the
Unsplash License. author and sourceUrl
are returned so adopters can render photographer + Unsplash attribution
alongside each used image. See
Asset Manager & AI Images → Unsplash: licensing & attribution
for the full rules (attribution, prohibited uses, download tracking).
Registering a remote tool
SetORCHESTRATOR_TOOL_MANIFEST_PATH to a JSON file. The orchestrator reads it once, at startup, in both the standalone server and library mode. There is no registration endpoint.
Remote Tool HTTP Contract
Orchestrator calls remote endpoints with:Loaded remote tool registrations and its count.
PIM Skeleton Example
- Tool name:
pim.getProduct - Input schema:
{ sku: string } - Output schema:
{ sku: string, title: string, description?: string, imageUrl?: string, price?: string } - Capability:
read
DAM Skeleton Example
- Tool name:
dam.searchAssets - Input schema:
{ query: string, limit?: integer } - Output schema:
{ items: [{ id: string, url: string, alt?: string, mimeType?: string }] } - Capability:
read