3.4 KiB
3.4 KiB
components/agents/ - Agent Specs (Markdown)
Dieser Ordner enthaelt die menschenlesbaren Agent-Spezifikationen. Jede Datei ist gleichzeitig Produktdoku und kuratierte Prompt-Quelle.
Dual Model (verbindlich)
Die Agent-Runtime basiert auf zwei Quellen:
- Struktur in TypeScript
lib/agent-definitions.tslib/agent-run-contract.ts
- Kuratierte Prompt-Segmente in Markdown
components/agents/*.md- kompiliert via
scripts/compile-agent-docs.ts - konsumiert aus
lib/generated/agent-doc-segments.ts
Wichtig:
convex/agents.tsliest kein Raw-Markdown zur Laufzeit.- Nur markierte
AGENT_PROMPT_SEGMENT-Bloecke wirken prompt-relevant. - Unmarkierter Text ist Doku fuer Menschen.
Dateikonvention pro Agent
Dateiname muss dem Agent-Id-Muster folgen, z. B.:
campaign-distributor.mdfurcampaign-distributor
Die Zuordnung passiert ueber docs.markdownPath in lib/agent-definitions.ts.
Frontmatter (Pflicht)
Jede Agent-Datei startet mit Frontmatter:
---
name: Campaign Distributor
description: ...
tools: WebFetch, WebSearch, Read, Write, Edit
color: yellow
emoji: lemon
vibe: ...
---
Hinweise:
emojisoll als ASCII-Token gepflegt werden (z. B.lemon), nicht als Unicode-Zeichen.- Frontmatter ist Referenz fuer Doku und muss mit der TS-Definition konsistent bleiben.
Prompt Segment Marker (Pflicht)
Aktuell required keys:
rolestyle-rulesdecision-frameworkchannel-notes
Marker-Format:
<!-- AGENT_PROMPT_SEGMENT:role:start -->
Segment text
<!-- AGENT_PROMPT_SEGMENT:role:end -->
Regeln:
- Pro required key genau ein start- und ein end-marker.
- Kein leerer Segment-Inhalt.
- Marker-Namen muessen exakt passen.
- Segment-Reihenfolge in der Generierung folgt
AGENT_PROMPT_SEGMENT_KEYS.
Optional zusaetzliche Segmenttypen sind erlaubt, muessen aber erst im Compiler/ Runtime-Prompting verankert werden, bevor sie Wirkung haben.
Schreibregeln fuer Segmente
- Schreibe handlungsorientiert und spezifisch.
- Keine versteckte Denkspur (kein chain-of-thought).
- Keine erfundenen Produktfakten, Statistiken oder Deadlines.
- Kanalregeln konkret, aber nicht auf fragile Einzelformate ueber-engineeren.
- Immer auf strukturierten Runtime-Output ausrichten (
artifactType,sections,metadata,qualityChecks,previewText,body).
Nach jeder Aenderung
- Prompt-Segmente kompilieren:
npx tsx scripts/compile-agent-docs.ts
- Relevante Tests laufen lassen:
npm run test -- tests/lib/agent-doc-segments.test.ts tests/lib/agent-prompting.test.ts
- Bei Struktur-Aenderungen zusaetzlich:
npm run test -- tests/lib/agent-definitions.test.ts tests/lib/agent-run-contract.test.ts
Wann andere Dateien mitziehen
lib/agent-definitions.tsanpassen, wenn sich Inputs, Kanaele, Regeln, Blueprints oder Parameter aendern.lib/agent-prompting.tsanpassen, wenn neue Segmenttypen wirklich in Prompts einfliessen sollen.scripts/compile-agent-docs.tsanpassen, wenn required segment keys geaendert werden.messages/de.json/messages/en.jsonanpassen, wenn neue UI-Labels sichtbar werden.
Anti-Patterns
- Komplettes monolithisches Prompt-Dokument ohne Marker-Struktur.
- Raw-Markdown als Runtime-Input ohne Compile-Step.
- Agent-Output nur als Freitext ohne strukturierte Deliverables.
- Segment-Inhalte, die den TS-Contracts widersprechen.