How-To: Add Anthropic as an LLM Provider in Smarter

Goal

This tutorial shows how to add Anthropic as an LLM provider in Smarter using a provider manifest.

In this example, Anthropic is used because Claude Code is the intended downstream use case.

Prerequisites

This tutorial assumes you already have:

  • Administrative access to the Smarter environment

  • The Smarter CLI installed and available

  • Permission to apply manifests

  • An Anthropic API key

  • Basic familiarity with YAML and command-line tools

Setup

Before creating the provider manifest, make sure the Anthropic API key is available to Smarter as a secret or environment-level configuration.

See Anthropic’s documentation at Get started with Claude for current information.

Concept Overview

In Smarter, a Provider resource defines an upstream LLM provider that other Smarter resources can use.

For this tutorial:

  • Smarter acts as the internal platform

  • Anthropic is the upstream provider

  • Claude is the model family

  • The provider manifest defines how Smarter connects to Anthropic

Step-by-Step

Step 1: Generate a starting template

Run:

smarter manifest provider

Step 2: Create the provider manifest

Create a file named anthropic-provider.yaml:

apiVersion: smarter.sh/v1
kind: Provider
metadata:
  name: anthropic_provider
  description: Anthropic provider for Claude models
  version: 1.0.0
spec:
  provider:
    name: Anthropic
    description: Anthropic API provider
    base_url: https://api.anthropic.com/v1
    api_key: anthropic_api_key
    connectivity_test_path: /models

Step 3: Apply the manifest

Run:

smarter apply -f anthropic-provider.yaml

Step 4: Verify the provider

Run:

smarter describe provider anthropic_provider

Proof of Concept

A successful result is a provider resource that is active and available for later llm_client or agent configuration.

Troubleshooting

Provider does not apply

Check the YAML formatting and required fields.

Provider does not verify

Check that the Anthropic API key is available to Smarter and that the base URL and connectivity test path are correct.

Optional Next Step

After the provider is active, the next logical step would be to create an llm_client that uses it.

The following example shows the intended shape of an Anthropic llm_client manifest, based on the same style as the smarter-deploy OpenAI llm_client example. This is shown as a target-state example only.

Note

In the current Smarter repo, llm_client providers appear to be limited to OpenAI, Google AI, and Meta AI. Additional implementation would likely be required before an Anthropic llm_client could work end-to-end.

apiVersion: smarter.sh/v1
kind: LLMClient
metadata:
  description: "An Anthropic Claude pass-through llm_client."
  name: anthropic_claude
  version: 0.1.0
spec:
  apiKey: null
  config:
    appAssistant: Claude
    appBackgroundImageUrl: null
    appExamplePrompts:
      - Write a Python function that generates the Fibonacci sequence.
      - Summarize a technical document in 100 words or less.
      - Provide a technical definition for the term "machine learning."
    appFileAttachment: false
    appInfoUrl: https://www.anthropic.com/
    appLogoUrl: https://platform.smarter.sh/static/images/logo/smarter-crop.png
    appName: Anthropic Claude
    appPlaceholder: Ask me anything...
    appWelcomeMessage: Welcome to Claude!
    customDomain: null
    defaultMaxTokens: 4096
    defaultModel: claude-3-5-sonnet
    defaultSystemRole: You are a helpful llm_client.
    defaultTemperature: 0.5
    deployed: true
    provider: anthropic
    subdomain: null
  functions: []
  plugins: []

This step is outside the main scope of this tutorial. The main objective here is adding the provider itself.