Expose a cached agent model and configuration discovery API
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- rust, typescript
- Ambito
- backend, backend-api-design, testing
Direzione di ricerca
Non vengono indicati file o percorsi dei test. Inizia tracciando il ciclo di vita esistente di disposable probe e session nelle implementazioni basate su Rust, TypeScript e actor. Usa i test di accettazione elencati come definizione di completato, inclusi deduplicazione, caching, errori strutturati e isolamento della pulizia.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
AgentOS callers can discover an ACP agent's models and configuration options only by creating a complete disposable session. That makes catalog discovery pay the full adapter spawn, ACP initialize, and session/new cost, and it couples a metadata request to session resources and credentials.
The current probe lifecycle also closes the disposable session without an awaited teardown boundary. A failed or slow probe can leave an adapter process, pending I/O, or VM resources behind and race a real foreground session for the same harness.
GigaCode has had to implement background catalog refresh, probe serialization, cached/default catalogs, per-harness configuration preparation, startup progress, and probe isolation around this lower-level behavior. Provider-response shaping belongs in GigaCode, but the expensive discovery lifecycle does not.
Proposed API
Expose a standard high-level operation that returns the agent's metadata and configuration catalog without requiring every caller to manage a disposable session, conceptually:
discoverAgentCatalog({
agent,
environment,
configuration,
software,
}) -> {
agentInfo,
models,
configOptions,
capabilities,
fingerprint,
source: "fresh" | "cache",
}
The exact name and shape should follow AgentOS conventions.
Required semantics
- Cache results by an AgentOS-owned fingerprint of the agent package plus configuration inputs that affect the advertised catalog.
- Deduplicate concurrent discovery for the same fingerprint.
- Keep discovery isolated from foreground sessions and their live adapter processes.
- If an adapter session is required internally, await its complete teardown before resolving.
- On failure, leave no adapter process, session record, prompt/event pump, or VM resource behind.
- Return structured stage errors such as adapter spawn failure, ACP initialize timeout,
session/newtimeout, adapter exit, and invalid package/configuration. - Allow explicit invalidation/refresh while making cached reads cheap.
- Preserve the full stable ACP
configOptionsshape, including model and thought/reasoning selectors. - Provide equivalent Rust, TypeScript, and actor-backed behavior.
Acceptance tests
- Two concurrent calls for one fingerprint launch at most one probe.
- A cached call creates no adapter process and performs no ACP bootstrap.
- A package/configuration fingerprint change causes one fresh discovery.
- Successful and failed fresh discovery both leave process/session counts at baseline after return.
- An initialize or
session/newtimeout reports its real structured stage and performs awaited cleanup. - Manual invalidation forces a fresh result without affecting a foreground session.
Outcome
Products can render a model/configuration catalog without owning ACP probe sessions, retry actors, or cleanup workarounds, while retaining their own provider-specific response shaping and refresh UX.
- Lingua principale
- Rust
- Stelle
- 4.8k
- Fork
- 266
- Merge medio
- 10h 56m
- PR unite (30g)
- 45
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di rivet-dev/agentos
-
`@rivet-dev/agentos-core` declares `googleapis` but never uses itForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Explicit sidecar stops accepting VMs after ~2048 create then dispose cycles "SidecarEventBufferOverflow"Forse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 1-2 giorni Idoneità per principianti 55/100
I maintainer di solito rispondono entro 1 giorno
-
Uncaught `EPIPE` crashes the host when the sidecar dies mid-writeForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 65/100
rivet-dev/agentos#2051 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
fs.rmSync with recursive: true follows symlinks and deletes the link target's contentsForse già presa @RaphaelFakhri l’ha presa 2 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Python edits to filesystem.writeFile-created files are reverted by shadow reconciliationForse già presa @ankssjain l’ha presa 15 giorni fa. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
rivet-dev/agentos#2022 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di rivet-dev/agentos
Issue simili
-
proxy: include denial_category in the "proxy request denied" log lineForse già presa @sreyas-endor l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
nolabs-ai/nono#2172 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
metasequoiaime/msime#9113 ·
I maintainer di solito rispondono entro 1 giorno
-
area:desktop priority:p2 type:chore
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
area: supply-chain
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100