Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Expose a cached agent model and configuration discovery API

Abierto
#1,786 0 comentarios 0 reacciones 0 asignados Ver en GitHub

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

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/new timeout, adapter exit, and invalid package/configuration.
  • Allow explicit invalidation/refresh while making cached reads cheap.
  • Preserve the full stable ACP configOptions shape, 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/new timeout 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

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de rivet-dev/agentos

Todos los issues de rivet-dev/agentos

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.