# Agents

Ein Agent ist eine Markdown-Datei, die der Session-Harness ausführt; das Manifest regelt lediglich seinen Zugriff.

Canonical page: https://beeuni.ai/docs/de/project/agents

Ein Agent ist eine Markdown-Datei, die festlegt, wie der Harness in einer
[Session](/docs/de/work/sessions) handelt. Diese Seite behandelt Agent-Dateien, Skills und
wie eine Session einen Agenten auswählt.

<a id="a-harness-runs-every-session"></a>

## Ein Harness führt jede Session aus

Eine Session führt einen Agent-Harness aus: Standard-Harness (der Standard) oder Experimental-Harness.
[Harnesses](/docs/de/work/harnesses) beschreibt, wie ein Projekt einen auswählt und was
jeder unterstützt.

Beide lesen die Agents des Projekts aus `agents/` und seine Skills aus `skills/`.
Standard-Harness liest außerdem die Dateien aus `harnesses/opencode/`, die nur von ihm verwendet werden. Experimental-Harness
liest seine eigenen aus `harnesses/pi/`.

Projekte, die vor 2026-09 erstellt wurden, behalten Agents und Skills unter
`.beeuni/opencode/`. Beeuni liest beide Strukturen.

<a id="an-agent-is-two-files"></a>

## Ein Agent besteht aus zwei Dateien

Jeder Agent besteht aus zwei Teilen:

- **Verhalten** — eine Markdown-Datei, standardmäßig `agents/<name>.md`. Ihr
  Frontmatter legt Modell, Modus und Berechtigungsregeln fest. Ihr Inhalt ist der
  System-Prompt.
- **Governance** — ein Eintrag in der Map `agents` von `beeuni.yaml`, der nach dem Agentennamen
  indiziert ist. Er legt fest, worauf der Agent zugreifen darf: Connectoren, Secrets, Skills, Apps,
  Beeuni-Berechtigungen und [Tools](/docs/de/project/tools#who-may-use-which-tool).
  Sein Feld `file` benennt die Verhaltensdatei.
  Die Map kann in einer Datei liegen, die das Manifest unter
  [`imports:`](/docs/de/project/manifest#imports) auflistet; `default_agent` bleibt in `beeuni.yaml`.

Das Manifest legt niemals einen Prompt oder Modus fest. Die Datei `.md` legt niemals
Plattformzugriff fest. Siehe [die Manifest-Referenz](/docs/de/project/manifest) für
alle Governance-Felder.

<a id="where-the-agent-file-lives"></a>

### Wo die Agent-Datei liegt

```yaml
agents:
  support:
    file: agents/support.md
```

- `file` ist ein relativ zum Repository angegebener Pfad. Er muss mit `.md` enden.
- Er darf nicht mit `/` beginnen. Er darf kein Segment `.` oder `..` enthalten.
- Ohne `file` liest Beeuni zunächst `agents/<name>.md`, dann
  `.beeuni/opencode/agents/<name>.md`.
- Wenn das Dashboard einen Agenten mit `.md` speichert, schreibt es `file` mit diesem Pfad.
- Die API verweigert Änderungen an `file`. Um einen Agenten zu verschieben, verschiebe seine `.md` und
  aktualisiere `file` in `beeuni.yaml` im selben Commit.

Die vollständigen Pfadregeln stehen in der
[Manifest-Referenz](/docs/de/project/manifest#the-agent-file).

<a id="governance-is-deny-by-default"></a>

## Governance verweigert standardmäßig den Zugriff

Ein Agent ohne den Schlüssel `connectors`, `secrets`, `skills`, `apps` oder `beeuni_permissions` erhält
keinen Zugriff darauf. `apps` listet die [Beeuni-Apps](/docs/de/feature-flags/apps#agents-and-apps) auf,
die der Agent öffnen darf, wenn eine App eingeschränkt oder privat ist. Diese Gewährung ist die zweite der beiden Bindungen: Der Agent
hat außerdem eine Rolle als `service_account`-Principal — seine Obergrenze —, und eine
Session kann nur das tun, was beide erlauben. Siehe
[Agent-Berechtigungen](/docs/de/project/permissions) und
[Ein Vokabular, zwei Bindungen](/docs/de/accounts#one-vocabulary-two-bindings). Setze ein Feld auf `all`, um vollständigen Zugriff zu gewähren, oder liste
bestimmte Namen auf. `default_agent` in `beeuni.yaml` benennt den Agenten, den eine Session
startet, wenn du keinen Agenten anforderst.

Lege jede Gewährung über das Dashboard fest — Customize → Agents → den Agenten, eine Seite
pro Gewährungsgruppe in der Access-Leiste: Skills, Connectors, Secrets, Apps, Beeuni-
Berechtigungen — oder über die CLI mit `beeuni agents scope <agent>`
(`--secrets`, `--connectors`, `--apps`). Die Apps-Seite erscheint nur, wenn für das
Projekt das Feature-Flag [Apps](/docs/de/feature-flags/apps) aktiviert ist. Jeder Pfad
schreibt denselben `agents.<name>`-Block in `beeuni.yaml`.

Legacy-`beeuni.toml`-Projekte (v1) führen Agents in einem Array statt einer Map auf und
gewähren standardmäßig vollständigen Zugriff. Lege bestimmte Gewährungen fest, um den Zugriff einzuschränken. Siehe
[die Manifest-Referenz](/docs/de/project/manifest).

<a id="skills-give-an-agent-know-how"></a>

## Skills vermitteln einem Agenten Know-how

Ein Skill ist eine Markdown-Datei unter `skills/<name>/SKILL.md`.
Der Harness lädt einen Skill bei Bedarf — Beeuni fügt die Skill-Inhalte
nicht in jeden Prompt ein. In Standard-Harness ruft der Agent das Tool `skill` auf. In Experimental-Harness listet der
System-Prompt den Namen und die Beschreibung jedes Skills auf, und der Agent liest die Datei. Die
`skills`-Gewährung eines Agenten in `beeuni.yaml`
steuert, welche Skills er laden darf.

<a id="how-a-session-picks-its-agent"></a>

## Wie eine Session ihren Agenten auswählt

Beim Erstellen einer Session wird ein `agent_name` akzeptiert. Beeuni startet diesen Agenten für die
Session. Wenn du `agent_name` weglässt, verwendet Beeuni `default_agent` des Projekts.
Lege den Standard-Agenten über das Dashboard, die API oder das SDK fest. Jeder Weg schreibt
`default_agent` in `beeuni.yaml` und committet die Änderung in den
Standard-Branch des Projekts.

Ein Agent handelt als er selbst: mit seinen Beeuni-Berechtigungen innerhalb seiner Obergrenzenrolle,
unabhängig davon, wer ihn ausführt. Das Starten einer Session leiht dem Agenten nicht deine eigene Rolle.
Siehe [Agent-Berechtigungen](/docs/de/project/permissions).

Neue oder geänderte Agents und Skills erreichen zukünftige Sessions erst, nachdem ein
[Change Request](/docs/de/work/change-requests) sie in den Standard-
Branch gemergt hat. Verbinde externe Tools, bevor ein Agent sie verwenden kann; siehe
[Connectors](/docs/de/connect/connectors).
