Skip to content

Aktivitets-livssyklus: arbeidsdokument, lukking ved løst issue og retrospektiv ved LRU-utløp #69

Description

@olebhansen

Blokkert av: #67 (aktivitetsnøkkel per DM-kanal og i-arbeid-sjekk må være på plass først — denne bygger livssyklus oppå den indeksen).

Bakgrunn

Aktivitetsindeksen i routeren (#52) er en LRU-aktig liste (maks 200; touch oppdaterer updated_at, de eldste droppes ved kapasitet). To ting mangler:

  1. Ingen eksplisitt avslutning: når en oppgave er løst (issuet lukkes, tråden dør), blir aktiviteten liggende til den tilfeldigvis skvises ut. Ingen skiller «løst» fra «glemt».
  2. Eviction er stille: når et innslag aldres ut, skjer det inne i upsert uten at noen får vite det. All kontekst om hva aktiviteten var, hva som ble gjort og hvilke tilbakemeldinger som kom, går tapt ulært.

Samtidig finnes alle byggeklossene for å lære av avsluttede aktiviteter: debrief-mønsteret fra delegeringene (interne events uten svar-rute), kunnskapsrepoet med inbox/learnings.jsonl, og synthesis-loopen som batcher læring (SYNTHESIS_INTERVAL_HOURS). Dette er også første konkrete bit av meta-prosess-ideen om å overvåke og lære av agentens egen oppførsel.

Foreslått løsning

Rollefordeling: indeksen i integrations forblir dum og billig (kun matching). Alt innhold — arbeidsdokument, refleksjon — eies av proxy-agenten via kunnskapsrepoet.

  1. Arbeidsdokument per aktivitet (proxy-agenten): når agenten begynner på en henvendelse knyttet til en aktivitet (issue/tråd), oppretter/oppdaterer den activities/<key>.md i kunnskapsrepoet: intensjon, hva som er gjort, tilbakemeldinger underveis. Git gir historikk og synlighet gratis. Skill-instruks, ingen harness-endring.
  2. Eksplisitt avslutning: GitHub-polleren ser når et issue boten er involvert i lukkes — det er «oppgave løst»-signalet. Integrations fjerner aktiviteten fra indeksen og sender et internt activity-retired-event til proxyens inbox (source: "agent", ingen svar-rute, teller ikke som delegeringshopp — samme semantikk som delegation-outcome), med reason: "resolved".
  3. Retrospektiv ved utløp: samme activity-retired-event sendes med reason: "evicted" når LRU-en dropper et innslag. Proxyen kjører en kort refleksjon over arbeidsdokumentet (hva var intensjonen, ble den nådd, hva lærte vi) og appender 0–2 læringer til kunnskapsrepoets inbox/learnings.jsonl. Batch-læringen skjer allerede: synthesis-loopen plukker opp innboksen på neste kjøring (typisk natt).
  4. DM-embedding rulleres: med Ikke deleger samme sak to ganger: i-arbeid-sjekk før delegering + DM-fiks i aktivitetsindeksen #67 blir én DM-kanal én evig aktivitet, og embeddingen (første melding noensinne) representerer kanalen stadig dårligere. Ved touch på en IM-aktivitet re-embeddes siste melding (eller et rullerende vindu). DM-kanaler får ikke retrospektiv ved utløp — de er kontekstkanaler, ikke oppgaver; refleksjonsenheten er issues/tråder.

Steg

  1. activity-retired-event i integrations (fjerning ved issue-lukking + hook i LRU-eviction), etter debrief-mønsteret.
  2. Rullerende embedding for IM-aktiviteter i routeren.
  3. Skill/prompt-instruks i proxy-agenten: arbeidsdokument i activities/, refleksjon ved activity-retired, læringer til innboksen.
  4. Verifisér ende-til-ende: lukk et issue → aktivitet fjernes → refleksjon skrevet → læring synlig i neste syntese.

Berørte filer

  • integrations/src/router/activities.ts — fjerning + eviction-hook, IM-re-embedding
  • integrations/src/router/router.ts — rullerende IM-embedding ved touch
  • integrations/src/agent/queue.ts — activity-retired-event (gjenbruk debrief-mekanikken)
  • integrations/src/github/poller.ts — issue-lukking som avslutningssignal
  • agents/proxy-agent/docker/entrypoint.sh + skills — arbeidsdokument- og refleksjonsinstruks
  • integrations/README.md, doc/

Akseptansekriterier

  • Lukking av et issue boten er involvert i fjerner aktiviteten fra indeksen og gir proxyen et activity-retired-event (resolved).
  • LRU-eviction gir samme event med reason: "evicted" i stedet for å droppe stille.
  • Proxyen fører arbeidsdokument per aktivitet i kunnskapsrepoet og skriver refleksjonslæringer til inbox/learnings.jsonl ved retirement; syntesen plukker dem opp uten nye mekanismer.
  • DM-aktiviteter re-embeddes rullerende og unntas retrospektiv.
  • activity-retired kan aldri starte delegeringskjeder eller poste til Slack/GitHub (ingen svar-rute).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions