Het AI-Aansprakelijkheidstribunaal is een technische showcase die gebruikmaakt van ProtoLink om te onderzoeken of autonome AI-agenten door middel van interactie tot betere of slechtere conclusies komen.
De Casus
Het experiment draait om het fictieve 'C-91 incident', waarbij een autonome robotaxi van Aster Vale dodelijk is gebotst met een fietser. Het tribunaal moet bepalen of er sprake is van criminele nalatigheid, waarbij gebruik wordt gemaakt van complexe bewijsstukken over software-releases, kalibratiefouten en infrastructuurproblemen.
Opzet en Methodiek
Het systeem simuleert diverse rollen, waaronder een rechter, advocaten, experts en een jury. De kern van het onderzoek ligt in de vier verschillende communicatieconfiguraties:
- Solo: Eén burger beslist op basis van het dossier.
- Independent: Meerdere juryleden stemmen onafhankelijk van elkaar.
- Star: Communicatie verloopt centraal via een voorzitter.
- Mesh: Juryleden kunnen elkaar direct en vrijuit aanspreken.
Belangrijkste Bevindingen
Uit de resultaten blijkt dat de netwerktopologie direct invloed heeft op het verdict. In de 'mesh'-configuratie leidde directe interactie ertoe dat aannames werden uitgedaagd, wat in de testrun resulteerde in een verschuiving van 'niet schuldig' naar 'schuldig'.
Technische Implementatie
Het project is modulair opgezet en ondersteunt diverse LLM-providers zoals OpenAI, Anthropic, Gemini en Ollama. De output bestaat uit gedetailleerde JSON-resultaten, transcripten en interactieve HTML-rapporten voor analyse van de agent-to-agent (A2A) telemetrie.
AI-Aansprakelijkheidstribunaal
Deze ProtoLink-showcase plaatst autonome agenten in een fictief aansprakelijkheidstribunaal en maakt hun communicatie observeerbaar. Hoewel de zaak gedenkwaardig is, is de casus niet het hoofproduct. Het product is de interactie:
- Agenten met verschillende rollen, prikkels, beroepen en communicatiegewoonten;
- Directe agent-tot-agent taken via ProtoLink;
- Juryleden die zelf kiezen wie ze aanspreken en wat ze vragen;
- Herhaalbare wijzigingen in opinies na elk openbaar bericht;
- Vergelijkingen tussen solo, onafhankelijk, 'foreperson-star' en 'direct-mesh' configuraties;
- Experimenten met verschillende providers/modellen binnen hetzelfde applicatieprotocol.
De standaardrun is deterministisch en offline. Deze produceert JSON-resultaten, ProtoLink-traces, een openbaar transcript en op zichzelf staande interactieve HTML-rapporten.
Disclaimer: Alles en iedereen in dit voorbeeld is fictief. Dit is een software-experiment, geen juridische analyse, juridisch advies of een gevalideerde veiligheidsbeoordeling.
De zaak: Het C-91 incident
Op een regenachtige avond om 21:47 uur raakte een autonome Aster Vale robotaxi de 31-jarige fietser Lina Ortega binnen een tijdelijke oversteekplaats, met dodelijke afloop. De auto begon pas 0,35 seconden voor de impact met noodremmen. Zesendertig uur eerder had het voertuig de software-release Orchid 4.8 ontvangen.
Het fictieve tribunaal stelt de volgende vraag: Is Aster Vale Mobility schuldig aan crimineel nalatige implementatie van een autonoom voertuigsysteem dat heeft geleid tot de dood van Lina Ortega?
Bewijsmateriaal
Het bewijs creëert een probleem van interactieve defecten:
- E1: Camera-classificatie voegde de fietser en het rijstrookpijlbord samen; radar detecteerde beweging, maar het remmen werd onderdrukt.
- E2: Een ingenieur had de release geblokkeerd nadat 3 van de 20 simulaties van laat remmen faalden, maar een latere kalibratie behaalde 20 van de 20 herhalingen.
- E3: De gecrashte auto gebruikte kalibratie C-91, terwijl het veiligheidsrapport C-90 valideerde; een CI-bot had de ondertekeningsgegevens gedeeld.
- E4: Een aannemer verplaatste het pijlbord en liet na de stadskaart bij te werken, waardoor ongeveer 1,1 seconden aan nuttige observatietijd verloren ging.
- E5: Een door toezichthouders goedgekeurd ontwerp stond toe dat camera-classificatie radar-only remmen boven de 25 km/u kon vetoën.
- E6: Een uitval van het mobiele netwerk maakte de safeguard voor externe operators onbruikbaar, ondanks twee eerdere storingen in de buurt van de locatie.
- E7: Reconstructies tonen aan dat zowel de kalibratie als de weginrichting de veilige stoprate materieel beïnvloedden.
De binaire beschuldiging is bewust nauwer gesteld dan het volledige causale verhaal. Een verdict van 'niet schuldig' betekent niet dat er niets misging, en een verdict van 'schuldig' betekent niet dat Aster Vale de enige veroorzaker was.
De agenten
De actoren zijn expliciet gedefinieerd in run.py om de ProtoLink-compositie inzichtelijk te maken.
Tribunaalactoren
| Agent | Leeftijd | Geslacht | Karakter en prikkel |
| Rechter Imani Quill | 58 | Vrouw | Neutrale voorzitter; scheidt causale bijdrage van juridische schuld. |
| Amara Bell | 41 | Vrouw | Advocaat voor de familie van Lina; verzet zich tegen het gebruik van complexiteit om verantwoordelijkheid te ontwijken. |
| Rowan Hale | 47 | Man | Safety executive bij Aster Vale; betoogt dat externe fouten zorgden voor een onvoorzienbare combinatie. |
| Dr. Nia Sol | 36 | Vrouw | Perceptie-ingenieur; nauwkeurig over kalibratie en de release-pipeline. |
| Elias Trent | 56 | Man | Veiligheidsregulator; eerlijk maar institutioneel defensief. |
| Dana Pierce | 50 | Vrouw | Directeur schadeclaims met een expliciet financieel belang. |
| Dr. Amina Kade | 44 | Vrouw | Onafhankelijk ongevallenonderzoeker die interagerende oorzaken reconstrueert. |
Jury
| Jurylid | Leeftijd | Geslacht | Menselijk perspectief |
| Evelyn Brooks | 62 | Vrouw | Voormalig rechercheur aanrijdingen. |
| Malik Thompson | 43 | Man | Civielrechtenadvocaat. |
| Dr. Anika Rao | 38 | Vrouw | Psycholoog gespecialiseerd in menselijke factoren. |
| Ruben Park | 35 | Man | Site-reliability engineer. |
| Sofia Bell | 46 | Vrouw | Onderzoekend journalist en foreperson (voorzitter). |
| Casey Morgan (solo only) | 40 | Vrouw | Algemene burger. |
Deze prompts beschrijven personen, geen vooraf ingestelde getallen. Leeftijd en geslacht zijn fictieve prompt-metadata en dienen constant te blijven bij providervergelijkingen om te voorkomen dat demografische veranderingen worden aangezien voor model-effecten.
Communicatie tussen agenten
De world engine plant de beurten en handhaaft de topologie. Op een beraadbeurt voert een jurylid een observeerbare publieke actie uit, bijvoorbeeld:
{
"move": "ask_question",
"target_id": "juror_ruben",
"message": "Maakt het gedeelde CI-token het bedrijf meer verantwoordelijk, of maakt het de attributie alleen maar moeilijker?",
"evidence_ids": ["E3"],
"public_intent": "Verhelderen of release-automatisering de organisatorische controle verandert."
}
De applicatie valideert het doelwit tegen de huidige topologie, waarna de spreker het bericht direct via ProtoLink naar de geselecteerde agent stuurt. De ontvanger stuurt een bijgewerkt publiek register, een categorisch stemvoorstel, een beknopte reden en een publiek antwoord terug.
Berichten tussen peers onthullen nooit automatisch de private waarschijnlijkheid, het vertrouwen of de stem van een ander jurylid. Een agent onthult alleen wat hij bewust in zijn publieke bericht plaatst.
Vier beslissingscondities
- Solo: Eén algemene burger ontvangt het openbare verslag en beslist zonder collega's. Dit dient als baseline, maar verandert ook de panelgrootte en persona-compositie.
- Independent (Onafhankelijk): Vijf juryleden horen hetzelfde openbare verslag en stemmen zonder berichten van collega's. Dit legt specialisatie en diversiteit vast zonder beraad.
- Star: Juryleden sturen publieke berichten via voorzitter Sofia Bell. De voorzitter fungeert als informatiehub en mogelijke bottleneck.
- Mesh: Elk jurylid heeft een beurt waarbij alle andere juryleden potentiële doelwitten zijn. De agent bepaalt zelf de ontvanger, de actie, het bericht en de publieke intentie.
Analyse van de resultaten (Default Replay)
De offline seed-7 fixture is ontworpen om het effect van communicatie in één run zichtbaar te maken:
| Conditie | Peer berichten | Verdict | Tally | Gem. schuldregister |
| solo | 0 | Guilty | 1–0 | 78.59 |
| independent | 0 | Not guilty | 2–3 | 77.56 |
| star | 5 | Not guilty | 2–3 | 80.21 |
| mesh | 5 | Guilty | 3–2 | 80.54 |
In de mesh-configuratie kiest Sofia Bell ervoor om Dr. Anika Rao uit te dagen over de interactie tussen de niet-gevalideerde C-91 kalibratie en de kaart van de crashlocatie. Het publieke schuldregister van Anika verschuift hierdoor van 77.90 naar 81.41, en haar stem verandert van 'niet schuldig' naar 'schuldig'.
De star-topologie verhoogt ook het gemiddelde schuldregister, maar concentreert berichten bij de voorzitter zonder het 2–3 verdict te wijzigen. Het doel is niet om aan te tonen dat "meer berichten beter zijn", maar dat wie wie kan aanspreken bepaalt welke aannames worden blootgelegd.
Snelstart
Voer uit vanuit de root van de repository: python examples/ai_courtroom/run.py
De standaardopdracht gebruikt de deterministische referentieprovider en draait alle vier de condities zonder netwerktoegang of inloggegevens.
Specifieke configuraties
python examples/ai_courtroom/run.py --provider reference --condition mesh --seed 17
python examples/aicourtroom/run.py --condition all --seed 17 --output-dir examples/aicourtroom/output/c-91-incident-seed-17
Monitoring van een run
De runner rapporteert voortgang in realtime:
- Offline reference provider: Gebruikt compacte fase- en stapupdates.
- Live providers: Tonen standaard elke A2A (agent-to-agent) uitwisseling en de verstreken tijd.
-v of --verbose: Forceert gedetailleerde updates over berichten, acceptatie en reparaties.
-q of --quiet: Onderdrukt voortgangsrapportage; alleen headers en samenvattingen blijven over.
--agent-verbosity {0,1,2}: Controleert onafhankelijk de per-agent logs van ProtoLink (standaard 0).
Rapportage en Output
Het rapport begint met communicatieanalyse in plaats van benchmark-metrieken:
- Verdict vóór versus na het beraad.
- Afspeelbare A2A event replay (zender, ontvanger, vraag/uitdaging, antwoord).
- Synchronisatie van schuldregisters en categorische stemmen.
- Citaten van bewijsmateriaal en ProtoLink-task metadata.
Bestanden per conditie
| Bestand | Doel |
result.json | Volledige configuratie, publiek register, modelgegevens, beslissingsgeschiedenis en metrieken. |
summary.json | Compacte uitkomsten en vergelijkingsdata. |
transcript.md | Escaped openbaar transcript. |
report.html | Interactieve replay en analyse. |
traces.jsonl | ProtoLink task, inference en A2A telemetrie. |
Integratie van Live Modellen
Installeer optionele clients: python -m pip install -e '.[llms]'
Voorbeeldrun met OpenAI:
export OPENAI_API_KEY="..."
python examples/ai_courtroom/run.py \
--provider openai \
--model "your-model-id" \
--temperature 0 \
--condition mesh \
--seed 17
Ondersteunde backends: openai, anthropic, gemini, ollama, openai-compatible.
Ollama configuratie
python examples/ai_courtroom/run.py --provider ollama --model "your-ollama-model" --base-url "http://localhost:11434" --condition mesh --action-parse-attempts 5 --max-attempts 5 --verbose
Validatiegrenzen voor live modellen:
--action-parse-attempts: Hoe vaak de ProtoLink inference loop het model kan vragen om de outer action envelope te corrigeren.
--max-attempts: Hoeveel pogingen het tribunaal toestaat voor elk A2A-bericht na ontvangst van de inhoud.
Beide staan standaard op 3 (bereik 1..5). Hogere limieten kunnen kleinere lokale modellen helpen herstellen, maar verhogen de looptijd.
Gecontroleerde vergelijking van juryleden
Om wetenschappelijke confounding te voorkomen (waarbij een provider-switch zowel advocaten als juryleden verandert), kan men de tribunaalactoren deterministisch houden en alleen de jury wijzigen:
python examples/ai_courtroom/run.py --provider reference --juror-provider anthropic --juror-model "your-model-id" --condition mesh --temperature 0 --seed 17
Richtlijnen voor publiceerbare vergelijkingen:
- Bevries prompts, demografie, casus, bewijsvolgorde, topologie en temperatuur.
- Koppel runs per seed.
- Verifieer record hashes en control fingerprints.
- Rapporteer uitkomst, kalibratie, grounding, volatiliteit, latentie en kosten apart.
Interpretatie van Mening en Invloed
guilt_probability: Dit is een publiek register van de applicatie, geen sonde in het verborgen geloof van het model.
- Categorische stem (
guilty / not_guilty): Deze wordt geformuleerd door het jurylid onder de fictieve bewijslast van het tribunaal. De applicatie leidt niet stilzwijgend schuld af uit een drempelwaarde van 50%.
Een waarschuwing bij analyse: Een verschuiving in het register na een bericht (bijv. +3.51) is geen automatisch bewijs dat het bericht de volledige oorzaak was. Causale taal vereist een matched message ablation over herhaalde paired runs.
Directory Map
examples/ai_courtroom/
├── run.py
├── compare.py
├── README.md
├── ARTICLE.md
├── courtroom/
│ ├── case_data.py
│ ├── providers.py
│ ├── reference_llm.py
│ ├── schemas.py
│ ├── simulation.py
│ └── reporting.py
├── tests/
│ ├── conftest.py
│ └── test_courtroom.py
└── output/
└── .gitignore
AI-Aansprakelijkheidstribunaal
Deze ProtoLink-showcase plaatst autonome agenten in een fictief aansprakelijkheidstribunaal en maakt hun communicatie observeerbaar. Hoewel de zaak gedenkwaardig is, is de casus niet het hoofproduct. Het product is de interactie:
- Agenten met verschillende rollen, prikkels, beroepen en communicatiegewoonten;
- Directe agent-tot-agent taken via ProtoLink;
- Juryleden die zelf kiezen wie ze aanspreken en wat ze vragen;
- Herhaalbare wijzigingen in opinies na elk openbaar bericht;
- Vergelijkingen tussen solo, onafhankelijk, 'foreperson-star' en 'direct-mesh' configuraties;
- Experimenten met verschillende providers/modellen binnen hetzelfde applicatieprotocol.
De standaardrun is deterministisch en offline. Deze produceert JSON-resultaten, ProtoLink-traces, een openbaar transcript en op zichzelf staande interactieve HTML-rapporten.
Disclaimer: Alles en iedereen in dit voorbeeld is fictief. Dit is een software-experiment, geen juridische analyse, juridisch advies of een gevalideerde veiligheidsbeoordeling.
De zaak: Het C-91 incident
Op een regenachtige avond om 21:47 uur raakte een autonome Aster Vale robotaxi de 31-jarige fietser Lina Ortega binnen een tijdelijke oversteekplaats, met dodelijke afloop. De auto begon pas 0,35 seconden voor de impact met noodremmen. Zesendertig uur eerder had het voertuig de software-release Orchid 4.8 ontvangen.
Het fictieve tribunaal stelt de volgende vraag: Is Aster Vale Mobility schuldig aan crimineel nalatige implementatie van een autonoom voertuigsysteem dat heeft geleid tot de dood van Lina Ortega?
Bewijsmateriaal
Het bewijs creëert een probleem van interactieve defecten:
- E1: Camera-classificatie voegde de fietser en het rijstrookpijlbord samen; radar detecteerde beweging, maar het remmen werd onderdrukt.
- E2: Een ingenieur had de release geblokkeerd nadat 3 van de 20 simulaties van laat remmen faalden, maar een latere kalibratie behaalde 20 van de 20 herhalingen.
- E3: De gecrashte auto gebruikte kalibratie C-91, terwijl het veiligheidsrapport C-90 valideerde; een CI-bot had de ondertekeningsgegevens gedeeld.
- E4: Een aannemer verplaatste het pijlbord en liet na de stadskaart bij te werken, waardoor ongeveer 1,1 seconden aan nuttige observatietijd verloren ging.
- E5: Een door toezichthouders goedgekeurd ontwerp stond toe dat camera-classificatie radar-only remmen boven de 25 km/u kon vetoën.
- E6: Een uitval van het mobiele netwerk maakte de safeguard voor externe operators onbruikbaar, ondanks twee eerdere storingen in de buurt van de locatie.
- E7: Reconstructies tonen aan dat zowel de kalibratie als de weginrichting de veilige stoprate materieel beïnvloedden.
De binaire beschuldiging is bewust nauwer gesteld dan het volledige causale verhaal. Een verdict van 'niet schuldig' betekent niet dat er niets misging, en een verdict van 'schuldig' betekent niet dat Aster Vale de enige veroorzaker was.
De agenten
De actoren zijn expliciet gedefinieerd in run.py om de ProtoLink-compositie inzichtelijk te maken.
Tribunaalactoren
| Agent | Leeftijd | Geslacht | Karakter en prikkel |
| Rechter Imani Quill | 58 | Vrouw | Neutrale voorzitter; scheidt causale bijdrage van juridische schuld. |
| Amara Bell | 41 | Vrouw | Advocaat voor de familie van Lina; verzet zich tegen het gebruik van complexiteit om verantwoordelijkheid te ontwijken. |
| Rowan Hale | 47 | Man | Safety executive bij Aster Vale; betoogt dat externe fouten zorgden voor een onvoorzienbare combinatie. |
| Dr. Nia Sol | 36 | Vrouw | Perceptie-ingenieur; nauwkeurig over kalibratie en de release-pipeline. |
| Elias Trent | 56 | Man | Veiligheidsregulator; eerlijk maar institutioneel defensief. |
| Dana Pierce | 50 | Vrouw | Directeur schadeclaims met een expliciet financieel belang. |
| Dr. Amina Kade | 44 | Vrouw | Onafhankelijk ongevallenonderzoeker die interagerende oorzaken reconstrueert. |
Jury
| Jurylid | Leeftijd | Geslacht | Menselijk perspectief |
| Evelyn Brooks | 62 | Vrouw | Voormalig rechercheur aanrijdingen. |
| Malik Thompson | 43 | Man | Civielrechtenadvocaat. |
| Dr. Anika Rao | 38 | Vrouw | Psycholoog gespecialiseerd in menselijke factoren. |
| Ruben Park | 35 | Man | Site-reliability engineer. |
| Sofia Bell | 46 | Vrouw | Onderzoekend journalist en foreperson (voorzitter). |
| Casey Morgan (solo only) | 40 | Vrouw | Algemene burger. |
Deze prompts beschrijven personen, geen vooraf ingestelde getallen. Leeftijd en geslacht zijn fictieve prompt-metadata en dienen constant te blijven bij providervergelijkingen om te voorkomen dat demografische veranderingen worden aangezien voor model-effecten.
Communicatie tussen agenten
De world engine plant de beurten en handhaaft de topologie. Op een beraadbeurt voert een jurylid een observeerbare publieke actie uit, bijvoorbeeld:
{
"move": "ask_question",
"target_id": "juror_ruben",
"message": "Maakt het gedeelde CI-token het bedrijf meer verantwoordelijk, of maakt het de attributie alleen maar moeilijker?",
"evidence_ids": ["E3"],
"public_intent": "Verhelderen of release-automatisering de organisatorische controle verandert."
}
De applicatie valideert het doelwit tegen de huidige topologie, waarna de spreker het bericht direct via ProtoLink naar de geselecteerde agent stuurt. De ontvanger stuurt een bijgewerkt publiek register, een categorisch stemvoorstel, een beknopte reden en een publiek antwoord terug.
Berichten tussen peers onthullen nooit automatisch de private waarschijnlijkheid, het vertrouwen of de stem van een ander jurylid. Een agent onthult alleen wat hij bewust in zijn publieke bericht plaatst.
Vier beslissingscondities
- Solo: Eén algemene burger ontvangt het openbare verslag en beslist zonder collega's. Dit dient als baseline, maar verandert ook de panelgrootte en persona-compositie.
- Independent (Onafhankelijk): Vijf juryleden horen hetzelfde openbare verslag en stemmen zonder berichten van collega's. Dit legt specialisatie en diversiteit vast zonder beraad.
- Star: Juryleden sturen publieke berichten via voorzitter Sofia Bell. De voorzitter fungeert als informatiehub en mogelijke bottleneck.
- Mesh: Elk jurylid heeft een beurt waarbij alle andere juryleden potentiële doelwitten zijn. De agent bepaalt zelf de ontvanger, de actie, het bericht en de publieke intentie.
Analyse van de resultaten (Default Replay)
De offline seed-7 fixture is ontworpen om het effect van communicatie in één run zichtbaar te maken:
| Conditie | Peer berichten | Verdict | Tally | Gem. schuldregister |
| solo | 0 | Guilty | 1–0 | 78.59 |
| independent | 0 | Not guilty | 2–3 | 77.56 |
| star | 5 | Not guilty | 2–3 | 80.21 |
| mesh | 5 | Guilty | 3–2 | 80.54 |
In de mesh-configuratie kiest Sofia Bell ervoor om Dr. Anika Rao uit te dagen over de interactie tussen de niet-gevalideerde C-91 kalibratie en de kaart van de crashlocatie. Het publieke schuldregister van Anika verschuift hierdoor van 77.90 naar 81.41, en haar stem verandert van 'niet schuldig' naar 'schuldig'.
De star-topologie verhoogt ook het gemiddelde schuldregister, maar concentreert berichten bij de voorzitter zonder het 2–3 verdict te wijzigen. Het doel is niet om aan te tonen dat "meer berichten beter zijn", maar dat wie wie kan aanspreken bepaalt welke aannames worden blootgelegd.
Snelstart
Voer uit vanuit de root van de repository: python examples/ai_courtroom/run.py
De standaardopdracht gebruikt de deterministische referentieprovider en draait alle vier de condities zonder netwerktoegang of inloggegevens.
Specifieke configuraties
python examples/ai_courtroom/run.py --provider reference --condition mesh --seed 17
python examples/aicourtroom/run.py --condition all --seed 17 --output-dir examples/aicourtroom/output/c-91-incident-seed-17
Monitoring van een run
De runner rapporteert voortgang in realtime:
- Offline reference provider: Gebruikt compacte fase- en stapupdates.
- Live providers: Tonen standaard elke A2A (agent-to-agent) uitwisseling en de verstreken tijd.
-v of --verbose: Forceert gedetailleerde updates over berichten, acceptatie en reparaties.
-q of --quiet: Onderdrukt voortgangsrapportage; alleen headers en samenvattingen blijven over.
--agent-verbosity {0,1,2}: Controleert onafhankelijk de per-agent logs van ProtoLink (standaard 0).
Rapportage en Output
Het rapport begint met communicatieanalyse in plaats van benchmark-metrieken:
- Verdict vóór versus na het beraad.
- Afspeelbare A2A event replay (zender, ontvanger, vraag/uitdaging, antwoord).
- Synchronisatie van schuldregisters en categorische stemmen.
- Citaten van bewijsmateriaal en ProtoLink-task metadata.
Bestanden per conditie
| Bestand | Doel |
result.json | Volledige configuratie, publiek register, modelgegevens, beslissingsgeschiedenis en metrieken. |
summary.json | Compacte uitkomsten en vergelijkingsdata. |
transcript.md | Escaped openbaar transcript. |
report.html | Interactieve replay en analyse. |
traces.jsonl | ProtoLink task, inference en A2A telemetrie. |
Integratie van Live Modellen
Installeer optionele clients: python -m pip install -e '.[llms]'
Voorbeeldrun met OpenAI:
export OPENAI_API_KEY="..."
python examples/ai_courtroom/run.py \
--provider openai \
--model "your-model-id" \
--temperature 0 \
--condition mesh \
--seed 17
Ondersteunde backends: openai, anthropic, gemini, ollama, openai-compatible.
Ollama configuratie
python examples/ai_courtroom/run.py --provider ollama --model "your-ollama-model" --base-url "http://localhost:11434" --condition mesh --action-parse-attempts 5 --max-attempts 5 --verbose
Validatiegrenzen voor live modellen:
--action-parse-attempts: Hoe vaak de ProtoLink inference loop het model kan vragen om de outer action envelope te corrigeren.
--max-attempts: Hoeveel pogingen het tribunaal toestaat voor elk A2A-bericht na ontvangst van de inhoud.
Beide staan standaard op 3 (bereik 1..5). Hogere limieten kunnen kleinere lokale modellen helpen herstellen, maar verhogen de looptijd.
Gecontroleerde vergelijking van juryleden
Om wetenschappelijke confounding te voorkomen (waarbij een provider-switch zowel advocaten als juryleden verandert), kan men de tribunaalactoren deterministisch houden en alleen de jury wijzigen:
python examples/ai_courtroom/run.py --provider reference --juror-provider anthropic --juror-model "your-model-id" --condition mesh --temperature 0 --seed 17
Richtlijnen voor publiceerbare vergelijkingen:
- Bevries prompts, demografie, casus, bewijsvolgorde, topologie en temperatuur.
- Koppel runs per seed.
- Verifieer record hashes en control fingerprints.
- Rapporteer uitkomst, kalibratie, grounding, volatiliteit, latentie en kosten apart.
Interpretatie van Mening en Invloed
guilt_probability: Dit is een publiek register van de applicatie, geen sonde in het verborgen geloof van het model.
- Categorische stem (
guilty / not_guilty): Deze wordt geformuleerd door het jurylid onder de fictieve bewijslast van het tribunaal. De applicatie leidt niet stilzwijgend schuld af uit een drempelwaarde van 50%.
Een waarschuwing bij analyse: Een verschuiving in het register na een bericht (bijv. +3.51) is geen automatisch bewijs dat het bericht de volledige oorzaak was. Causale taal vereist een matched message ablation over herhaalde paired runs.
Directory Map
examples/ai_courtroom/
├── run.py
├── compare.py
├── README.md
├── ARTICLE.md
├── courtroom/
│ ├── case_data.py
│ ├── providers.py
│ ├── reference_llm.py
│ ├── schemas.py
│ ├── simulation.py
│ └── reporting.py
├── tests/
│ ├── conftest.py
│ └── test_courtroom.py
└── output/
└── .gitignore