Orkestrering: menneskelig scriptspråk med kompilator til CLI-kall
To lag av samme script:
- Menneskelig: "transkriber lydfilen (stor modell)"
- Teknisk: "synops-transcribe --cas-hash {event.cas_hash} --model large"
Kompilator matcher verb mot cli_tool-aliases, argumenter mot
args_hints, variabler fra trigger-kontekst. Rust-stil feilmeldinger.
Tre visninger i editoren (Enkel/Teknisk/Kompilert).
Oppgaver restrukturert: kompilator, alias-metadata, executor,
UI med tre visninger, AI-assistert oppretting, kaskade, seed.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
42a45cd613
commit
b759808831
2 changed files with 106 additions and 14 deletions
|
|
@ -47,12 +47,32 @@ metadata: {
|
|||
|
||||
⚡ signaliserer: "denne noden gjør noe av seg selv."
|
||||
|
||||
## 4. Tre utførelsesnivåer
|
||||
## 4. To lag: menneskelig språk og teknisk script
|
||||
|
||||
### Nivå 1: Deklarativt script (ingen AI)
|
||||
Orkestreringer har to representasjoner av samme oppskrift —
|
||||
et menneskelig lesbart språk som kompileres til tekniske
|
||||
CLI-kall. Brukeren skriver og leser det ene, vaktmesteren
|
||||
kjører det andre.
|
||||
|
||||
Eksakte CLI-kall med variabler fra trigger-konteksten.
|
||||
Vaktmesteren parser og eksekverer direkte — ingen LLM.
|
||||
### Menneskelig lag (bruker skriver)
|
||||
|
||||
```
|
||||
NÅR innspilling avsluttet
|
||||
HVIS samling har podcast
|
||||
|
||||
1. transkriber lydfilen (stor modell)
|
||||
ved feil: transkriber lydfilen (medium modell)
|
||||
2. oppsummer samtalen
|
||||
3. oppdater rss-feed
|
||||
|
||||
ved feil: opprett oppgave "Pipeline feilet" (bug)
|
||||
```
|
||||
|
||||
Ingen `--cas-hash`, ingen `{event.*}`, ingen CLI-syntax.
|
||||
Norske verb som matcher verktøy. Argumenter i parenteser.
|
||||
Lesbart for alle.
|
||||
|
||||
### Teknisk lag (vaktmesteren kjører)
|
||||
|
||||
```
|
||||
NÅR innspilling.avsluttet
|
||||
|
|
@ -66,7 +86,79 @@ HVIS samling.har_trait("podcast")
|
|||
VED_FEIL: work_item "Podcast-pipeline feilet" --tag bug
|
||||
```
|
||||
|
||||
**Grammatikk:**
|
||||
Generert automatisk fra det menneskelige laget via kompilatoren.
|
||||
Deterministisk, gratis, raskt.
|
||||
|
||||
### Kompilatoren
|
||||
|
||||
Vaktmesteren kompilerer menneskelig → teknisk ved lagring.
|
||||
Matchingen bruker `cli_tool`-noders metadata:
|
||||
|
||||
```jsonc
|
||||
{
|
||||
"binary": "synops-transcribe",
|
||||
"aliases": ["transkriber", "transkribering"],
|
||||
"description": "Whisper-transkribering av lydfil",
|
||||
"args_hints": {
|
||||
"lydfilen": "{event.cas_hash}",
|
||||
"stor modell": "--model large",
|
||||
"medium modell": "--model medium"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
"transkriber lydfilen (stor modell)" matcher:
|
||||
- "transkriber" → alias for synops-transcribe
|
||||
- "lydfilen" → {event.cas_hash} (fra trigger-kontekst)
|
||||
- "(stor modell)" → --model large
|
||||
|
||||
### Kompileringsfeil (Rust-stil)
|
||||
|
||||
Ved feil får brukeren presise, hjelpsomme meldinger:
|
||||
|
||||
```
|
||||
┌─ Kompilering ────────────────────────────────┐
|
||||
│ │
|
||||
│ ✓ Linje 1: transkriber lydfilen (stor) │
|
||||
│ → synops-transcribe --model large │
|
||||
│ │
|
||||
│ ✗ Linje 2: send epost til deltakerne │
|
||||
│ Feil: "send epost" matcher ingen verktøy │
|
||||
│ Mente du: "varsle deltakerne"? │
|
||||
│ Tilgjengelig: varsle, oppsummer, publiser │
|
||||
│ │
|
||||
│ ✓ Linje 3: oppdater rss-feed │
|
||||
│ → synops-rss │
|
||||
│ │
|
||||
│ 1 feil. Rett opp og prøv igjen. │
|
||||
└──────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
### Tre visninger i editoren
|
||||
|
||||
```
|
||||
[Enkel] [Teknisk] [Kompilert]
|
||||
```
|
||||
|
||||
| Visning | Hva | Hvem |
|
||||
|---------|-----|------|
|
||||
| **Enkel** | Norsk, lesbart | Brukeren skriver her |
|
||||
| **Teknisk** | CLI-kall med variabler | For de som vil se |
|
||||
| **Kompilert** | JSON/intern | Skjult som default |
|
||||
|
||||
Tabbar i editoren — som raw/rendered i tekst-editoren.
|
||||
Kompileringsfeil vises i sanntid mens brukeren skriver.
|
||||
|
||||
### Grammatikk (menneskelig lag)
|
||||
|
||||
```
|
||||
TRIGGER NÅR <event i naturlig språk>
|
||||
HVIS <betingelse i naturlig språk>
|
||||
STEP <N>. <verb> <objekt> [(<argument>)]
|
||||
FALLBACK ved feil: <verb> <objekt> | opprett oppgave <tittel> [(<tag>)]
|
||||
```
|
||||
|
||||
### Grammatikk (teknisk lag)
|
||||
|
||||
```
|
||||
TRIGGER NÅR <event> [HVIS <betingelse>]
|
||||
|
|
@ -75,9 +167,8 @@ FALLBACK VED_FEIL: <tool> <args...> | work_item <title> [--tag <tag>]
|
|||
VARIABLE {event.<felt>} — substitueres fra trigger-konteksten
|
||||
```
|
||||
|
||||
Enkelt nok til å parse med en liten Rust-parser i vaktmesteren.
|
||||
Deterministisk, gratis, raskt. **De fleste produksjons-
|
||||
orkestreringer vil være på dette nivået.**
|
||||
**De fleste produksjonsorkestreringer skrives og vedlikeholdes
|
||||
i det menneskelige laget.** Det tekniske laget er generert.
|
||||
|
||||
### Nivå 2: AI-assistert oppretting
|
||||
|
||||
|
|
|
|||
13
tasks.md
13
tasks.md
|
|
@ -319,12 +319,13 @@ automatisk eskalering av intelligens ved feil, kompilering av velprøvde mønstr
|
|||
- [x] 24.1 Orchestration node-type: legg til `orchestration` i maskinrommets node-validering. Metadata-skjema: `trigger` (event + conditions), `executor`, `intelligence`, `effort`, `compiled`, `pipeline`. Valider trigger-events mot kjent liste.
|
||||
- [~] 24.2 Trigger-evaluering i portvokteren: ved node/edge-events, sjekk om noen `orchestration`-noder matcher triggeren. Effektiv lookup (indeksert på `metadata.trigger.event`). Ingen LLM-kall for trigger-matching.
|
||||
> Påbegynt: 2026-03-18T16:46
|
||||
- [ ] 24.3 Bot-utførelse: utvid `synops-respond` (eller nytt `synops-orchestrate`) til å ta orchestration-node som input. Bygg prompt med trigger-kontekst + instruksjoner + tilgjengelige verktøy. Function calling for hvert steg. Logg i `orchestration_log`.
|
||||
- [ ] 24.4 Auto-eskalering: start med lavt intelligens/effort-nivå. Ved feil (tool_error, ambiguous_instruction) bump automatisk til neste nivå og retry. Maks 3 nivåer.
|
||||
- [ ] 24.5 Orchestration UI: editor for orkestreringsnoder i frontend. Trigger-velger (dropdown), betingelser, tekstbokser per steg, "Test kjøring"-knapp (dry-run), kjørehistorikk med status.
|
||||
- [ ] 24.6 Kaskade: `triggers`-edge mellom orkestreringer. Output fra én trigrer neste. Syklusdeteksjon for å unngå uendelige loops.
|
||||
- [ ] 24.7 Kompilering: observer hvilke verktøy/sekvenser som gjentas. Foreslå kompilering etter N kjøringer. Kompilert pipeline med `fallback: "bot"`. Ingen LLM for standardsteg.
|
||||
- [ ] 24.8 Seed-orkestreringer: opprett standard-orkestreringer for podcast-pipeline, publiseringsflyt, og AI-beriking basert på eksisterende hardkodet logikk i portvokteren.
|
||||
- [ ] 24.3 Script-kompilator: parser menneskelig scriptspråk ("transkriber lydfilen (stor modell)") og kompilerer til tekniske CLI-kall. Matcher verb mot `cli_tool`-noders `aliases`, argumenter mot `args_hints`, variabler fra trigger-kontekst. Rust-stil kompileringsfeil med forslag.
|
||||
- [ ] 24.4 cli_tool alias-metadata: utvid alle `cli_tool`-noder med `aliases` (norske verb) og `args_hints` (menneskelige argumenter → CLI-flagg). Seed for alle eksisterende verktøy.
|
||||
- [ ] 24.5 Script-executor: vaktmesteren parser kompilert script og eksekverer steg sekvensielt via generisk dispatch. VED_FEIL-håndtering. Logger i `orchestration_log`.
|
||||
- [ ] 24.6 Orchestration UI: editor med tre visninger (Enkel/Teknisk/Kompilert) som tabber. Sanntids kompileringsfeil. Trigger-velger, "Test kjøring"-knapp, kjørehistorikk. Ref: `docs/concepts/orkestrering.md`.
|
||||
- [ ] 24.7 AI-assistert oppretting: `synops-ai` med auto-generert systemprompt (fra cli_tool-noder) foreslår script fra fritekst-beskrivelse. Vaktmesteren validerer. Eventually-modus: lagre som work_item for Claude Code.
|
||||
- [ ] 24.8 Kaskade: `triggers`-edge mellom orkestreringer. Output fra én trigger neste. Syklusdeteksjon for å unngå uendelige loops.
|
||||
- [ ] 24.9 Seed-orkestreringer: opprett standard-orkestreringer for podcast-pipeline, publiseringsflyt, og AI-beriking basert på eksisterende hardkodet logikk i vaktmesteren. Skrives i menneskelig scriptspråk.
|
||||
|
||||
## Fase 25: Web Clipper — `synops-clip`
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue