Skip to main content
LibreChat is joining ClickHouse to power the open-source Agentic Data Stack 🎉 Learn more
LibreChat

API Agentów (Beta)

Uzyskaj programowy dostęp do agentów LibreChat poprzez punkty końcowe API zgodne z OpenAI oraz Open Responses

Funkcja beta

API Agents jest obecnie w fazie beta. Punkty końcowe (endpoints), formaty żądań/odpowiedzi oraz zachowanie mogą ulec zmianie w miarę naszych prac nad stabilnym wydaniem.

LibreChat udostępnia Twoich agentów poprzez dwa interfejsy kompatybilne z API, umożliwiając zewnętrznym aplikacjom, skryptom i usługom programową interakcję z Twoimi agentami.

Przegląd

API Agents udostępnia dwa interfejsy:

  • Zgodne z OpenAI Chat CompletionsPOST /api/agents/v1/chat/completions
  • API otwartych odpowiedziPOST /api/agents/v1/responses

Oba są uwierzytelniane za pomocą kluczy API i obsługują strumieniowe przesyłanie odpowiedzi, co ułatwia integrację agentów LibreChat z istniejącymi przepływami pracy, które już korzystają z zestawów SDK OpenAI lub podobnych narzędzi.

LibreChat przyjmuje Open Responses jako swój główny framework API do obsługi agentów. Chociaż endpoint Chat Completions zapewnia wsteczną kompatybilność z istniejącymi narzędziami zgodnymi z OpenAI, endpoint Open Responses wyznacza przyszły kierunek rozwoju.

Włączanie Agents API

API Agents jest zabezpieczone za pomocą konfiguracji interfejsu remoteAgents. Wszystkie uprawnienia domyślnie mają wartość false.

interface:
  remoteAgents:
    use: true
    create: true

Zobacz Interface Configuration — remoteAgents, aby zapoznać się ze wszystkimi dostępnymi opcjami.

Uwaga: Użytkownicy z uprawnieniami administratora mają domyślnie włączone wszystkie zdalne uprawnienia agenta.

Zarządzanie kluczami API

Gdy remoteAgents.use oraz remoteAgents.create są włączone, użytkownicy mogą generować klucze API z poziomu interfejsu LibreChat. Klucze te uwierzytelniają żądania kierowane do Agents API.

Uwierzytelnianie

API Agents obsługuje dwie metody uwierzytelniania, których można używać niezależnie lub łącznie.

Klucz API

Uwierzytelnianie za pomocą klucza API jest domyślnie włączone. Wygeneruj klucze API z poziomu interfejsu użytkownika LibreChat, gdy remoteAgents.use oraz remoteAgents.create zostaną włączone.

Authorization: Bearer <YOUR_API_KEY>

Token OIDC Bearer

W scenariuszach typu machine-to-machine, w których Twoja infrastruktura posiada już dostawcę OIDC, możesz uwierzytelniać się bezpośrednio za pomocą tokenów OIDC Bearer bez użycia klucza API LibreChat.

Skonfiguruj uwierzytelnianie OIDC w librechat.yaml:

endpoints:
  agents:
    remoteApi:
      auth:
        apiKey:
          enabled: false
        oidc:
          enabled: true
          issuer: https://auth.example.com/realms/myrealm
          # jwksUri is optional and auto-discovered from issuer if omitted
          audience: my-client-id

Następnie wywołaj API za pomocą swojego tokena dostępu OIDC:

curl -X POST https://your-librechat-instance/api/agents/v1/responses \
  -H "Authorization: Bearer YOUR_OIDC_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model": "agent_abc123", "input": "Hello!"}'

Token OIDC musi należeć do użytkownika, który już istnieje w LibreChat. Dopasowanie wykorzystuje najpierw pole sub, a następnie, w razie braku dopasowania, email, preferred_username lub upn.

Zobacz Agents Endpoint - remoteApi, aby zapoznać się ze wszystkimi opcjami konfiguracji.

Endpoints

Chat Completions (zgodne z OpenAI)

POST /api/agents/v1/chat/completions

Użyj dowolnego SDK zgodnego z OpenAI, wskazując na swoją instancję LibreChat. Parametr model odpowiada identyfikatorowi agenta (agent ID).

Przykład z użyciem curl:

curl -X POST https://your-librechat-instance/api/agents/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "agent_abc123",
    "messages": [
      {"role": "user", "content": "Hello, what can you help me with?"}
    ],
    "stream": true
  }'

Przykład z użyciem OpenAI SDK (Python):

from openai import OpenAI

client = OpenAI(
    base_url="https://your-librechat-instance/api/agents/v1",
    api_key="YOUR_API_KEY"
)

response = client.chat.completions.create(
    model="agent_abc123",
    messages=[{"role": "user", "content": "Hello!"}],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content, end="")

Lista modeli

GET /api/agents/v1/models

Zwraca dostępne agenty jako modele. Przydatne do sprawdzania, które agenty są dostępne przy użyciu Twojego klucza API.

API otwartych odpowiedzi (Open Responses API)

POST /api/agents/v1/responses

Endpoint Open Responses jest zgodny ze specyfikacją Open Responses, otwartym standardem wnioskowania zainicjowanym przez OpenAI i stworzonym przez społeczność AI open-source. Został zaprojektowany z myślą o przepływach pracy agentów, z natywną obsługą wnioskowania, użycia narzędzi, ustrukturyzowanych danych wyjściowych oraz strumieniowania zdarzeń semantycznych.

curl -X POST https://your-librechat-instance/api/agents/v1/responses \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "agent_abc123",
    "input": "What is the weather today?"
  }'

Śledzenie zużycia tokenów

Wszystkie żądania API Agents śledzą zużycie tokenów w odniesieniu do salda użytkownika (gdy skonfigurowano wydatki na tokeny). Zliczane są zarówno tokeny wejściowe, jak i wyjściowe, w tym tokeny pamięci podręcznej (cache) dla dostawców, którzy je obsługują (OpenAI, Anthropic).

Plan rozwoju

  • Otwarte odpowiedzi jako główny interfejs — Planujemy rozszerzyć endpoint Open Responses o pełne wsparcie dla pętli agentowych, orkiestracji narzędzi oraz strumieniowania zdarzeń semantycznych.
  • Anthropic Messages API — W przyszłości możemy dodać obsługę formatu Anthropic Messages API jako dodatkowego interfejsu.

Jaka jest ta instrukcja?