# Harness AI mit OpenCheese

> OpenCheese als benutzerdefinierter Anbieter in Harness AI Desktop: Provider ID, Basis-URL, API-Schlüssel, settings.yaml mit Reasoning-Stufen, Zugangsdatendatei.
>
> Webseite: https://opencheese.dev/de/docs/harness-ai/ · Alle Seiten der Doku: https://opencheese.dev/de/docs.md

Harness AI Desktop (DeepSeek Harness) bindet OpenCheese als benutzerdefinierten Anbieter neben dem
eingebauten DeepSeek-Anbieter ein und spricht mit ihm die Chat-Completions-API von OpenAI unter
`https://api.opencheese.dev/v1`.

Harness legt alles in einem Ordner ab: `%USERPROFILE%\.dsh` unter Windows, `~/.dsh` unter Linux und
macOS oder dort, wohin `$DSH_HOME` zeigt.

## 1. Harness AI installieren

Lade den Build für deine Plattform aus dem
[Harness-AI-Repository](https://github.com/deepseek-ai/deepseek-harness) herunter und schließe die
Installation ab.

## 2. OpenCheese als benutzerdefinierten Anbieter hinzufügen

1. Öffne **Settings** in der Seitenleiste und wähle **Models**.
2. Klicke auf **Add a custom provider** und fülle die Felder aus:

| Feld | Wert |
| --- | --- |
| Provider ID | `opencheese` |
| Display name | leer (übernimmt die Provider ID) |
| API protocol | `openai-completions` |
| Base URL | `https://api.opencheese.dev/v1` |
| API key | dein OpenCheese-API-Schlüssel |

3. Klicke auf **Fetch available models**, lass alle Modelle ausgewählt und klicke auf
   **Create provider**.

- Die Provider ID muss genau `opencheese` lauten: Harness benennt die gespeicherten Zugangsdaten
  danach (`OPENCHEESE_API_KEY`), und mit jeder anderen Schreibweise zeigt der Anbieter auf
  Zugangsdaten, die nirgends gesetzt werden.
- Die Base URL behält ihr `/v1`: Harness hängt den Pfad des Endpunkts selbst an.
- Die Seite **Konfiguration** im Dashboard zeigt im Tab **Harness AI** dieselben Werte und gibt den
  Schlüssel frei, sobald du dessen Passwort bestätigst.

OpenCheese erscheint jetzt in der Models-Liste mit einem Custom-Badge und einem grünen Punkt, und
seine Modelle lassen sich in einem Chat auswählen.

## 3. Reasoning-Stufen hinzufügen (optional)

Auf der Settings-Seite lassen sich keine Reasoning-Stufen festlegen, deshalb bleibt die
Stufenauswahl leer, bis `settings.yaml` sie deklariert. Füge diesen Block in
`%USERPROFILE%\.dsh\settings.yaml` (`~/.dsh/settings.yaml`) ein, behalte dabei alle anderen
Abschnitte der Datei und starte Harness AI danach neu. Der Tab **Harness AI** generiert ihn mit
allen Modellen deines Tarifs.

```yaml
llm-pi-ai:
    providers:
        opencheese:
            apiKeyEnv: OPENCHEESE_API_KEY
            api: openai-completions
            baseURL: https://api.opencheese.dev/v1
            timeoutMs: 120000
            models:
                - id: MODEL_ID
                  name: Model name
                  contextWindow: 1000000
                  maxTokens: 131000
                  reasoningEfforts:
                      max: max
                      medium: medium
                      low: low
```

- Nimm `contextWindow` und `maxTokens` aus `context_window` und `max_output_tokens` des Modells in
  [`/v1/models`](https://opencheese.dev/de/docs/models.md) und die Stufen aus seinen `supported_reasoning_levels`. Beide
  Zahlen müssen positive Ganzzahlen sein.
- Harness akzeptiert nur die Stufen `off`, `minimal`, `low`, `medium`, `high`, `xhigh` und `max`.
  Schon ein anderer Name oder eine fehlende Zahl genügt, und Harness verwirft den ganzen Abschnitt
  `llm-pi-ai`: Alle OpenCheese-Modelle verschwinden auf einmal.
- Ein Modell ohne Stufen bekommt keinen Eintrag `reasoningEfforts`: Es nutzt seine Standardstufe.
- Der API-Schlüssel steht nicht in dieser Datei: `apiKeyEnv` nennt die Zugangsdaten, die Harness in
  Schritt 2 gespeichert hat.

## Einrichtung ohne die Settings-Seite

Um Schritt 2 zu überspringen, speichere die Zugangsdaten selbst als `.credentials.yaml` im selben
Ordner wie `settings.yaml`, zusätzlich zum Block oben:

```yaml
version: 1
refs:
    OPENCHEESE_API_KEY: YOUR_OPENCHEESE_API_KEY
```

- `version: 1` ist erforderlich.
- Führe unter Linux und macOS `chmod 600 ~/.dsh/.credentials.yaml` aus: Harness lehnt eine
  Zugangsdatendatei ab, die andere Benutzer lesen können.
- Chrome, Edge und andere Chromium-Browser speichern eine heruntergeladene `.credentials.yaml` als
  `credentials.yaml`; benenne sie wieder um.
- Diese Datei enthält deinen Schlüssel im Klartext. Committe sie niemals in ein Repository.

## Verbrauch und Kosten

Jede Anfrage erscheint im Dashboard unter **Transaktionen**, gruppiert als eine Sitzung pro
Unterhaltung, mit ihrem Tokenverbrauch und ihren Kosten.
