Orcha

Model Providers

Configure OrchaJS with OpenAI, Anthropic, DeepSeek, Gemini, Vertex AI, or Amazon Bedrock.

Configure providers once in orcha/index.ts, then select one in each agent's index.json.

API-key providers

OpenAI, Anthropic, DeepSeek, and Google GenAI accept an API key string:

import { orcha } from "orchajs";

orcha.init({
  providers: {
    openai: process.env.OPENAI_API_KEY ?? "",
    anthropic: process.env.ANTHROPIC_API_KEY ?? "",
    deepseek: process.env.DEEPSEEK_API_KEY ?? "",
    googlegenai: process.env.GOOGLE_API_KEY ?? "",
  },
  agents: {
    assistant: "./assistant",
  },
});

Use an object when you need a custom endpoint:

providers: {
  openai: {
    apiKey: process.env.OPENAI_API_KEY ?? "",
    baseUrl: "https://api.openai.com/v1",
  },
}

Google Vertex AI

providers: {
  vertexai: {
    project: process.env.GOOGLE_CLOUD_PROJECT ?? "",
    location: process.env.GOOGLE_CLOUD_LOCATION ?? "us-central1",
  },
}

When credentials is omitted, the Google SDK uses Application Default Credentials.

For an explicit service account:

providers: {
  vertexai: {
    project: process.env.GOOGLE_CLOUD_PROJECT ?? "",
    location: process.env.GOOGLE_CLOUD_LOCATION ?? "us-central1",
    credentials: {
      clientEmail: process.env.GOOGLE_CLIENT_EMAIL ?? "",
      privateKey: process.env.GOOGLE_PRIVATE_KEY ?? "",
    },
  },
}

Amazon Bedrock

providers: {
  bedrock: {
    region: process.env.AWS_REGION ?? "us-east-1",
  },
}

When credentials is omitted, the AWS SDK uses its normal credential chain. Explicit credentials are also supported:

providers: {
  bedrock: {
    region: process.env.AWS_REGION ?? "us-east-1",
    credentials: {
      accessKeyId: process.env.AWS_ACCESS_KEY_ID ?? "",
      secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY ?? "",
      sessionToken: process.env.AWS_SESSION_TOKEN,
    },
  },
}

Select a provider and model

In the agent's index.json:

{
  "name": "Assistant",
  "provider": "openai",
  "model": "gpt-5-mini",
  "outputType": "text"
}

model is the exact provider model identifier. Orcha does not rename models or translate reasoningLevel values between providers.

Different agents and evaluations may use different configured providers:

assistant       → OpenAI
policyReviewer  → Anthropic
qualityJudge    → Google Gemini

Environment variables

The Orcha library reads the host application's existing process.env. Standalone CLI commands also load .env from the project root without overriding variables already present.

OPENAI_API_KEY=...
ANTHROPIC_API_KEY=...
DEEPSEEK_API_KEY=...
GOOGLE_API_KEY=...

Never place credentials in agent JSON, instructions, run metadata, prompt variables, tests, or session logs.

Provider capabilities

Text is broadly supported. Structured output, reasoning controls, multimodal input, caching, and replay behavior vary by provider and model. Orcha normalizes supported behavior and returns a clear capability error instead of silently dropping unsupported input.