Expose a cached agent model and configuration discovery API
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Bastante claro
- Estado de actividad
- Tranquilo
- Stack tecnológico
- rust, typescript
- Área
- backend, backend-api-design, testing
Línea de trabajo
No se nombran archivos ni rutas de pruebas. Empieza rastreando el ciclo de vida existente de disposable probe y session en las implementaciones basadas en Rust, TypeScript y actores. Usa las pruebas de aceptación enumeradas como definición de hecho, incluida la deduplicación, el almacenamiento en caché, los fallos estructurados y el aislamiento de la limpieza.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Rust
- Estrellas
- 4.7k
- Forks
- 263
- Merge medio
- 8 h 57 min
- PR fusionados (30 d)
- 30
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rivet-dev/agentos
-
Python edits to filesystem.writeFile-created files are reverted by shadow reconciliationPosiblemente ocupada @ankssjain la tomó hace 3 días. Abierto
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
rivet-dev/agentos#2022 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 Medio día Aptitud para principiantes 32/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
Los mantenedores suelen responder en 1 día
-
Dificultad 4/5 3-5 días Aptitud para principiantes 66/100
rivet-dev/agentos#1994 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 42/100
Los mantenedores suelen responder en 1 día
Todos los issues de rivet-dev/agentos
Issues similares
-
[Feature]: [P3] engine-rs: the package source hash should ignore line endings and untracked filesAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
maniator/verticopolis#880 ·
Los mantenedores suelen responder en 1 día
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
Los mantenedores suelen responder en 3 días
-
defect
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 2 días