AiHummer
Dansk
Log indKonto
v1.3.x
{ }Swagger

Agenter og personaer

v1.3.x · opdateret 2026-09-15

En agent er enheden, som AiHummer sætter foran en samtale. Hver agent har en persona, sin egen model, en struktureret prompt og et sæt færdigheder, og hver ændring til den versionsstyres. Agenter administreres fra web-admin-UI’et og gennem admin-API’en under /v1/admin/agents/*.

Denne side dækker, hvad en agent består af, hvordan den strukturerede “G3”-prompt sammensættes, og hvordan en agent sikkert kan redigere sin egen profil.

Agentregistret

Registeret er et fuldt CRUD-katalog over agenter. For hver agent definerer du en identitet, en persona, den model, den kører på, og de færdigheder, den kan bruge. Fordi gatewayen er multitenant, lever agenter inden for et arbejdsområde og er isoleret som enhver anden lejerdata.

  • Persona — agentens stemme og adfærd, gengivet i en stald, cache-venligt lag af systemprompten.
  • Per-agent model — hver agent kan fastgøre sin egen model og udbyder, så en En billig agent og en flagskibsagent kan sameksistere i det samme arbejdsområde.
  • Færdigheder — per-agent og delte færdigheder gengiver en “Færdigheder”-blok i prompt; de beskriver kapaciteter, ikke vægte.

[!NOTE] En per-agent model er uafhængig af routing. Model-lag routing (simpel / standard / kompleks) vælger en modelklasse for en tur, mens den pr. agent modellen er agentens egen standard. Se Routing.

Versioner, tilbageførsel og klon

Hver meningsfuld ændring af en agent registreres som en version. Dette gør agentkonfigurationen reviderbar og omvendelig: du kan gennemse, hvad der blev ændret, rulle tilbage til en tidligere version, eller klon en agent til at bruge det som udgangspunkt for en ny. Version- og profileressourcer findes under /v1/admin/agents/* (profil, sektioner, færdigheder, versioner).

[!TIP] Klon en fungerende agent før en stor persona- eller prompt-omskrivning. Hvis den nye hvis retningen ikke lykkes, er originalen stadig en tilbageførsel væk.

Den strukturerede “G3” prompt

I stedet for et enkelt frit tekstsystemprompt bruger AiHummer en struktureret agentprofil (internt “G3”). Identiteten er opdelt i felter snarere end begravet i prosa, og resten af prompten er bygget op af navngivne sektioner plus en introduktion blok. Orkestratoren gengiver disse i den lagdelte systemprompt, idet de stabile dele (identitet, persona, sektioner) holdes i et cachebart præfiks og de flygtige data tilføjes til sidst.

Strukturen gør det nemt at redigere en profil felt for felt, nemt at sammenligne mellem versioner og forudsigelig at gengive — der er ingen skjult prompt-suppe.

G3 profile
├── identity fields   (decomposed: name, role, ...)
├── sections          (named, ordered prompt blocks)
└── onboarding        (first-run guidance)

Selvredigering bag en godkendelsesport

En agent kan få lov til at redigere sin egen profil at bruge selvredigeringsværktøjer — for eksempel til at forfine en sektion eller opdatere dens onboarding. Dette er bevidst beskyttet:

  • Selvredigeringer går gennem godkendelsesport: en foreslået ændring registreres og skal godkendes af et menneske, før det træder i kraft. En afvist ændring er aldrig anvendt.
  • Ændringen registreres som en ny version, så en selvredigering er lige så reviderbar og lige så reversibel som enhver manuel redigering.

[!WARNING] Selvredigering er kraftfuld. Hold det bag godkendelsesporten, så en agent ikke kan stille omskrive sin egen identitet. Gennemgå foreslåede selvediteringer på samme måde, som du gennemgå enhver privilegeret ændring.

Mailadgangskoder går til hvelvet

Hvis en agents konfiguration inkluderer maillegitimationsoplysninger (for mail værktøj), adgangskoden bliver skrevet til krypteret legitimationsopbevaring, ikke gemt i profilen eller indsat i prompten. Hemmeligheder kommer aldrig ind i modelkonteksten.

Kørselspolitik: kontekst, sessioner og underagenter

Fra version 1.3 har en agent en kørselspolitik — feltet runtime_policy i admin-API’et (/v1/admin/agents ved oprettelse og opdatering). Det er et strengt valideret JSON-objekt med "version": 1: et tomt {} genopretter standardværdierne, udeladelse af feltet ved opdatering beholder den tidligere politik, og ukendte felter eller værdier uden for grænserne afvises. Politikken tildeler ingen værktøjer og udvider ingen rettigheder — den sætter kun budgetter og frister. Kloning af en agent og overdragelse af en tur til den arver den.

  • context — historikbudgettet: max_tokens, reserve_tokens og history_share afgør, hvor meget historik der indgår i en forespørgsel; max_history_messages begrænser beskedvinduet, bootstrap_max_chars profilblokkens størrelse. Med en eksplicit kontekst komprimeres ældre beskeder til et resumé i portioner, før den aktuelle forespørgsel bygges.
    • pruning — oprydning af forældede værktøjsresultater: efter alder (ttl_seconds), med beskyttelse af de seneste svar (keep_last_assistants), blød beskæring (soft_trim_ratio, head_chars, tail_chars) og fuld erstatning med placeholder-teksten over hard_clear_ratio. Brugertekst, billeder og den fulde historik i databasen berøres ikke.
    • memory_flush — før komprimeringen skriver en agent uden værktøjer et kort notat om mål, beslutninger og åbne punkter (soft_threshold_tokens); de tre seneste notater fra samme dialog blandes ind i konteksten som ukontrolleret reference.
  • session — dialogens livscyklus: idle_reset_minutes starter en ny kontekst efter en pause (den rå historik bevares), index_prune_after_days og index_max_entries fjerner gamle dialoger fra standardlisten uden at slette dem. scope = per-peer (én dialog pr. verificeret bruger på tværs af kanaler) eller per-channel-peer (en separat dialog pr. kanal).
  • children — underagenter: max_depth (op til 4), max_concurrent (op til 8 pr. kørselstræ), max_per_parent (op til 5), timeout_seconds (op til 48 timer, aldrig længere end forælderen) og archive_after_minutes — hvornår afsluttede kørsler forlader standardlisten. Værdierne tilsidesætter de globale AIHUMMER_SUBAGENT_MAX_DEPTH og AIHUMMER_SUBAGENT_TIMEOUT_SEC for denne agent.
  • max_iterations (1–256) — trin-grænsen for funktionskaldsløkken til gennemgåede scenarier med mange delegeringer.
  • app — kun for AiHummer-appen: reasoning_effort, service_tier og kortsvarstilstanden direct_completion (auto eller always med max_tokens op til 4096 og timeout_ms op til 60 000).
  • interaction — udtrykkelige sessionstilladelser: user_ids, session_agent_ids, spawn_agent_ids, synligheden session_visibility (self, agent eller granted), session_send, værktøjsforbud for underkald (child_tool_deny, child_leaf_tool_deny) og elevated_telegram_user_ids — en delmængde af user_ids, der må anmode om udtrykkeligt forhøjet code_exec-kørsel (godkendelser omgås ikke). Der findes hverken jokertegn eller tilladelser for hele lejeren.

Admin-API

Agenter og deres strukturerede profiler administreres under admin-API’en, som er OIDC-beskyttet og revideret:

Ressource Formål
/v1/admin/agents Liste, opret, opdater, slet agenter (CRUD)
/v1/admin/agents/.../profile Den strukturerede G3-profil (identitetsfelter)
/v1/admin/agents/.../sections Navngivne promptsektioner
/v1/admin/agents/.../skills Færdigheder pr. agent
/v1/admin/agents/.../versions Versionshistorik, tilbagetrækning og klon

Hvor til næste