AiHummer
Svenska
Logga inKonto
v1.3.x
{ }Swagger

Agenter och personas

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

En agent är enheten som AiHummer sätter framför en konversation. Varje agent har en persona, sin egen modell, en strukturerad prompt och en uppsättning färdigheter, och varje ändring av den versionshanteras. Agenter hanteras från webbadministrationsgränssnittet och genom administrations-API:et under /v1/admin/agents/*.

Denna sida behandlar vad en agent består av, hur den strukturerade “G3”-prompten sätts ihop, och hur en agent säkert kan redigera sin egen profil.

Agentregistret

Registret är en fullständig CRUD-katalog över agenter. För varje agent definierar du en identitet, en persona, modellen den körs på och de färdigheter den kan använda. Eftersom gatewayen är multitenant, lever agenterna inom ett arbetsområde och är isolerade som vilken annan tenant-data som helst.

  • Persona — agentens röst och beteende, återgivna i en stall, cache-vänligt lager av systemprompten.
  • Per-agentmodell — varje agent kan spika sin egen modell och leverantör, så en En billig agent och en flaggskeppsagent kan samexistera i samma arbetsyta.
  • Färdigheter — per-agent och delade färdigheter renderar en “Färdigheter”-block till prompt; de beskriver kapaciteter, inte vikter.

[!NOTE] En per-agent modell är oberoende av routing. Modell-nivå routing (enkel / standard / komplex) väljer en modellklass för en tur, medan per-agent modellen är agentens egen standard. Se Routing.

Versioner, återställning och kloning

Varje meningsfull förändring av en agent fångas som en version. Detta gör agentkonfigurationen granskbar och omvändbar: du kan se vad som har ändrats, återställa till en tidigare version, eller klon en agent att använda det som utgångspunkt för en ny. Versions- och profileresurser finns under /v1/admin/agents/* (profil, sektioner, färdigheter, versioner).

[!TIP] Klon en fungerande agent innan en stor personlighets- eller promptomskrivning. Om den nya om riktningen inte fungerar, är originalet fortfarande ett återställningssteg bort.

Den strukturerade “G3”-uppmaningen

Istället för en enda fritextsystemuppmaning använder AiHummer en strukturerad agentprofil (internt “G3”). Identiteten är uppdelad i fält snarare än begravd i prosa, och resten av uppmaningen är byggd från namngivna avsnitt plus en introduktion block. Orkestratorn renderar dessa i det lagerlade systempromptet, och behåller de stabila delarna (identitet, persona, sektioner) i ett cachbart prefix och lägger till flyktig data sist.

Strukturen gör att en profil är lätt att redigera fält för fält, lätt att jämföra mellan versioner och förutsägbar att återge — det finns ingen dold prompt-soppa.

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

Självredigering bakom en godkännandespärr

En agent kan tillåtas att redigera sin egen profil använda självredigeringsverktyg — till exempel för att förbättra en sektion eller uppdatera dess introduktion. Detta är medvetet skyddat:

  • Självredigeringar går igenom godkännandekontroll: en föreslagen ändring registreras och måste godkännas av en människa innan det träder i kraft. En avvisad ändring är aldrig tillämpad.
  • Förändringen registreras som en ny version, så en självredigering är lika granskbar och omvändbar som vilken manuell redigering som helst.

[!WARNING] Självredigering är kraftfullt. Håll det bakom godkännandegrinden så att en agent inte kan tyst omskriver sin egen identitet. Granska föreslagna självediteringar på samma sätt som du granska alla privilegierade ändringar.

E-postlösenord går till valvet

Om en agents konfiguration inkluderar e-postuppgifter (för mail verktyg), lösenordet skrivs till krypterad behörighetsvalv, inte lagrat i profilen eller renderat i prompten. Hemligheter kommer aldrig in i modellens kontext.

Körningspolicy: kontext, sessioner och underagenter

Från version 1.3 har en agent en körningspolicy — fältet runtime_policy i admin-API:et (/v1/admin/agents vid skapande och uppdatering). Det är ett strikt validerat JSON-objekt med "version": 1: ett tomt {} återställer standardvärdena, att utelämna fältet vid uppdatering behåller den tidigare policyn, och okända fält eller värden utanför gränserna avvisas. Policyn tilldelar inga verktyg och utvidgar inga rättigheter — den sätter bara budgetar och tidsgränser. Kloning av en agent och överlämning av en tur till den ärver den.

  • context — historikbudgeten: max_tokens, reserve_tokens och history_share avgör hur mycket historik som ingår i en förfrågan; max_history_messages begränsar meddelandefönstret, bootstrap_max_chars profilblockets storlek. Med en explicit kontext komprimeras äldre meddelanden till en sammanfattning i omgångar innan den aktuella förfrågan byggs.
    • pruning — rensning av föråldrade verktygsresultat: efter ålder (ttl_seconds), med skydd av de senaste svaren (keep_last_assistants), mjuk beskärning (soft_trim_ratio, head_chars, tail_chars) och full ersättning med placeholder-texten över hard_clear_ratio. Användartext, bilder och hela historiken i databasen berörs inte.
    • memory_flush — före komprimeringen skriver en agent utan verktyg en kort anteckning om mål, beslut och öppna punkter (soft_threshold_tokens); de tre senaste anteckningarna från samma dialog blandas in i kontexten som ogranskad referens.
  • session — dialogens livscykel: idle_reset_minutes startar en ny kontext efter en paus (råhistoriken bevaras), index_prune_after_days och index_max_entries tar bort gamla dialoger från standardlistan utan att radera dem. scope = per-peer (en dialog per verifierad användare över alla kanaler) eller per-channel-peer (en separat dialog per kanal).
  • children — underagenter: max_depth (upp till 4), max_concurrent (upp till 8 per körningsträd), max_per_parent (upp till 5), timeout_seconds (upp till 48 timmar, aldrig längre än föräldern) och archive_after_minutes — när avslutade körningar lämnar standardlistan. Värdena åsidosätter de globala AIHUMMER_SUBAGENT_MAX_DEPTH och AIHUMMER_SUBAGENT_TIMEOUT_SEC för denna agent.
  • max_iterations (1–256) — steggränsen för funktionsanropsloopen för granskade scenarier med många delegeringar.
  • app — endast för AiHummer-appen: reasoning_effort, service_tier och kortsvarsläget direct_completion (auto eller always med max_tokens upp till 4096 och timeout_ms upp till 60 000).
  • interaction — uttryckliga sessionsbehörigheter: user_ids, session_agent_ids, spawn_agent_ids, synligheten session_visibility (self, agent eller granted), session_send, verktygsförbud för underanrop (child_tool_deny, child_leaf_tool_deny) och elevated_telegram_user_ids — en delmängd av user_ids som får begära uttryckligen upphöjd code_exec-körning (godkännanden kringgås inte). Det finns varken jokertecken eller behörigheter för hela hyresgästen.

Admin-API

Agenter och deras strukturerade profiler hanteras under admin-API:t, som är OIDC-skyddat och granskats:

Resurs Syfte
/v1/admin/agents Lista, skapa, uppdatera, ta bort agenter (CRUD)
/v1/admin/agents/.../profile Den strukturerade G3-profilen (identitetsfält)
/v1/admin/agents/.../sections Namngivna uppmaningsavsnitt
/v1/admin/agents/.../skills Färdigheter per agent
/v1/admin/agents/.../versions Versionshistorik, återställning och kloning

Vart härnäst