Skip to content

Latest commit

 

History

History
138 lines (123 loc) · 32 KB

feature-coverage.md

File metadata and controls

138 lines (123 loc) · 32 KB

Behavioral coverage

This inventory describes the source tree as reviewed on 2026-10-15. A website chapter link does not mean every feature in that chapter is implemented. None of the entries below is a runtime pass claim.

Reading the inventory

  • Demonstrated behavior identifies the actual code path, including explicit fixtures and failure scenarios.
  • Additional entry points are separate runnable scenarios in an existing Maven module; they do not create extra Maven modules.
  • Limits identify deliberately small examples, incomplete feature families and integration behavior that still requires validation.
  • All new and existing Java source imports are explicit. The catalog check rejects wildcard imports in main and test sources.

Module behavior and boundaries

Module Demonstrated behavior Limits
argi-adapter-example/agentscope Wraps an AgentScope OpenAI-compatible model in the neutral ARGI ChatClient.
Asynchronous completion, capability-gated streaming, one-event demand, final-response handling, terminal failures and cancellation on timeout.
Adapter-level capability flags, async completion and demand-controlled streams are demonstrated. Model-specific features and native SDK interoperability have not been exercised.
argi-adapter-example/google-adk Uses the Google ADK Apigee OpenAI-compatible transport through an ARGI adapter.
Asynchronous completion, capability-gated streaming, one-event demand, final-response handling, terminal failures and cancellation on timeout.
Adapter-level capability flags, async completion and demand-controlled streams are demonstrated. Model-specific features and native SDK interoperability have not been exercised.
argi-adapter-example/langchain4j Wraps LangChain4j chat and streaming models in the neutral ARGI ChatClient.
Asynchronous completion, capability-gated streaming, one-event demand, final-response handling, terminal failures and cancellation on timeout.
Adapter-level capability flags, async completion and demand-controlled streams are demonstrated. Model-specific features and native SDK interoperability have not been exercised.
argi-adapter-example/spring-ai Wraps a Spring AI OpenAI-compatible model in the neutral ARGI ChatClient.
Asynchronous completion, capability-gated streaming, one-event demand, final-response handling, terminal failures and cancellation on timeout.
Adapter-level capability flags, async completion and demand-controlled streams are demonstrated. Model-specific features and native SDK interoperability have not been exercised.
argi-agent-example/a2a Discovers a remote A2A agent card and delegates a task over the A2A protocol. Remote client delegation; no A2A server, authentication flow, task resubscription or transport failure matrix.
argi-agent-example/agent-as-tool Registers a specialist as a neutral Tool, letting a coordinator delegate work.
Typed specialist input, generated tool schema and explicit child context/reasoning boundaries.
In-process delegation; no distributed authorization or remote agent lifecycle.
argi-agent-example/agent-hitl Pauses tool calls and accepts approved, rejected, or edited human feedback. Read-only tracking tool approval; no real financial side effect or review UI.
argi-agent-example/agentic-rag Makes retrieval an agent tool and adds evidence through a MessagesModelHook.
Stable source labels, deterministic local retrieval and no-match behavior; retrieval tools and evidence injection have separate implementations.
Small keyword corpus; no production ranking benchmark, vector retrieval or citation correctness guarantee.
argi-agent-example/builtin-tools Registers built-in filesystem, search, and todo tools with neutral bindings. Filesystem, glob, grep and todo tools; not every upstream built-in tool is registered.
argi-agent-example/context-compaction Uses SummarizationHook to bound model context while retaining recent turns.
Long synthetic project history crosses the summary threshold; the scenario checks the summary marker and preservation of the first user message.
Summary content depends on the real model; input size is estimated and no token-cost saving is claimed.
argi-agent-example/context-engineering Preserves per-thread conversation history and enforces model call budgets.
Interleaved customer threads demonstrate isolation and per-thread budget exhaustion.
In-memory checkpoints and model-call limits; no cross-process session durability.
argi-agent-example/hooks-and-retries Combines PII redaction, model/tool budgets, and bounded retries for read-only tools.
An explicit fail-once read tool exercises retry rather than merely installing retry configuration.
Retry is limited to a read-only fixture. Non-idempotent tool recovery requires a separate design.
argi-agent-example/interceptors Custom model and tool interceptors measure duration and cache a read-only lookup.
Primary/fallback model configuration; outbound context editing; tool selection; explicitly synthetic tool emulation; assistant-message sanitization and tool-exception conversion.
Emulation is synthetic; fallback occurs only after a primary failure. RC2 ToolError returns diagnostic text without setting an error status.
argi-agent-example/multi-agent Parallel reviewers feed sequential writing and a bounded revision loop.
Custom deterministic merge strategy, bounded parallel reviewers and a condition-based revision loop capped at three iterations.
Local composition; convergence and review quality depend on model responses. The revision loop has an explicit ceiling.
argi-agent-example/planner Produces validated direct or decomposed plans from an explicit capability catalog.
Application-owned capability catalog; valid dependency chains; rejection of unregistered targets, missing dependencies, duplicate IDs and cycles.
Plans are validated data. No trusted executor, scheduling or plan-result persistence is implemented here.
argi-agent-example/react-tools Runs a ReAct tool loop against a local order-tracking catalog.
Tool schema and argument validation; malformed JSON and missing records; unknown registry bindings; result/call identity; direct tool return.
A local order repository; no commerce API or irreversible order mutation.
argi-agent-example/routing-streaming Uses LLM routing to choose a specialist and demonstrates neutral streamed messages. Model-selected specialists with a fallback; no routing accuracy evaluation or provider-event matrix.
argi-agent-example/skills Loads packaged skills, decorates neutral prompts, and exposes progressive skill disclosure. One packaged skill and progressive disclosure; no untrusted remote skill installation.
argi-agent-example/structured-output Selects schema enforcement according to adapter capabilities and validates the parsed domain record.
Explicit response format and ReactAgent outputType; domain validation rejects missing/extra fields, wrong types and out-of-range priorities.
A ticket schema; provider schema adherence remains model-dependent, so application validation is mandatory.
argi-agent-example/studio-chatbot Publishes a stateful agent bean through the embedded ARGI Studio. An embedded Studio agent bean; no UI E2E validation, authentication deployment or multi-tenant setup.
argi-agent-example/support-workflow Embeds a ReAct writer in a deterministic support workflow with human review.
Validated ticket input, draft inspection, separate approved/rejected threads and reviewer metadata persisted before resume.
Draft and review state only; no email is sent and no external refund is issued.
argi-extensions-example/a2a-nacos Resolves an A2A agent by registered name in Nacos before delegation. Nacos-backed agent discovery and delegation; no service failover or registration lifecycle validation.
argi-extensions-example/docker-execution Executes a fixed Python calculation through the Extensions Docker code executor. One explicit Python execution; no container startup during authoring, resource-pressure test or image lifecycle automation.
argi-extensions-example/document-parsing Parses UTF-8 text and JSON records while preserving source metadata.
Caller-selected JSON/text files, packaged input fixtures, source metadata projection and blank-document filtering.
JSON and UTF-8 text; PDF, Office, image OCR and upstream parser plugins are not included.
argi-extensions-example/http-node Retrieves an HTTP order resource as a graph step with explicit timeout and network policy. One HTTP GET with timeout and network policy; POST, authentication refresh and status-dependent routing are not covered.
argi-extensions-example/jdbc-chat-memory Persists a bounded Spring AI conversation with the Extensions H2 repository.
H2-backed window eviction, reopening a facade, conversation isolation and deletion without affecting another conversation.
Local H2 message storage; no remote JDBC outage or load experiment.
argi-extensions-example/jdbc-checkpoint Restores a pending approval through an H2 JDBC checkpoint saver and a new graph. Local H2 recovery; no production JDBC migration, contention or failover experiment.
argi-extensions-example/mcp-client Initializes a Streamable HTTP MCP client and enumerates all tool pages.
Read-only invocation of the companion lookup tool, advertised-tool checks and protocol error handling.
Streamable HTTP discovery and the companion read-only tool; no OAuth, resource subscriptions or prompt APIs.
argi-extensions-example/mcp-discovery Discovers registered MCP tools through Nacos and adapts callbacks for ReAct. Tool discovery and callback adaptation; no registry failover, service churn or credential refresh test.
argi-extensions-example/mcp-gateway Aggregates Nacos MCP services into independently routed SSE and Streamable endpoints. Starter-driven endpoint composition; no gateway authorization or routing E2E test.
argi-extensions-example/mcp-registry Publishes a read-only MCP tool and registers the server in Nacos. One annotated catalog tool registered in Nacos; no authenticated public server deployment.
argi-extensions-example/mcp-router Exposes semantic MCP routing tools to a neutral ARGI agent. Semantic MCP routing; no routing-quality evaluation or service-outage matrix.
argi-extensions-example/mem0-memory Writes semantic memories to Mem0 and retrieves them with an explicit user scope. Semantic write/search for one example user; no deletion, reconciliation or extraction-quality evaluation.
argi-extensions-example/memory-backends Profile-selected Redis, MongoDB, Elasticsearch, TableStore, Memcached, and JDBC chat repositories.
Message-window eviction, a recreated facade, conversation isolation and targeted cleanup against the selected repository.
Backend profiles share one contract scenario. No backend connectivity, consistency, TTL or failure behavior has been verified.
argi-extensions-example/mongodb-checkpoint Persists neutral graph state in the Extensions MongoDB checkpoint saver.
Fresh saver and graph read pending checkpoints, apply one approval, inspect history and leave another thread pending.
Restoration uses fresh saver objects on one client; database restart, replica failover and concurrent writers remain unverified.
argi-extensions-example/nacos-prompt Loads and watches a configurable prompt through Nacos and the Extensions prompt factory. Prompt loading and refresh listener; no configuration-center outage or rollback experiment.
argi-extensions-example/rag-retrieval Expands a query with HyDE and retrieves evidence through the RAG graph node. HyDE and graph retrieval; no reranker, hybrid retrieval, answer evaluation or ingestion lifecycle.
argi-extensions-example/redis-checkpoint Stores and reloads neutral graph checkpoints with the Extensions Redis saver.
Fresh saver and graph read pending checkpoints, apply one approval, inspect history and leave another thread pending.
Restoration uses fresh saver objects on one client; Redis restart, TTL expiry and cluster failover remain unverified.
argi-extensions-example/sandbox-tools Adapts an Extensions sandbox Python tool into a neutral ReAct agent. Python sandbox tool integration; no sandbox provisioning or full browser/desktop tool catalog.
argi-extensions-example/tair-vector-store Writes real embeddings to a Tair Vector index and searches for relevant documents. Tair indexing and search; no index administration, replication or failure-mode matrix.
argi-extensions-example/vector-backends Profile-selected AnalyticDB, OceanBase, OpenSearch, TableStore, and Tair indexing and search.
Three labelled documents, neutral search result projection, optional metadata filtering and opt-in deletion of example IDs.
Backend support for filters, deletion, upsert and index refresh differs. Optional operations require a compatible backend.
argi-graph-example/cancellation Cancels exactly one graph subscription and releases its asynchronous worker. Subscription cancellation and worker cleanup; provider-side billing cancellation is not demonstrated.
argi-graph-example/conditional-routing Routes support tickets into urgent and normal queues using conditional edges.
Both route outcomes and the severity threshold are exercised by a dedicated scenario.
Deterministic severity routing; model-based routing lives in routing-streaming.
argi-graph-example/hello-graph A two-step model-free workflow that normalizes a name and creates a greeting. Introductory two-node graph only; it deliberately has no application service or model.
argi-graph-example/hitl InterruptableAction requests missing feedback and resumes the same node. One dynamic review decision; no browser review queue or approval identity provider.
argi-graph-example/human-in-the-loop Pauses before a refund decision and resumes from the same checkpoint.
Two independently paused requests receive different approval decisions before resuming.
Approval changes example state; it does not issue a real refund.
argi-graph-example/observation Records graph observations with a local Micrometer handler and no telemetry backend. Successful local observation lifecycle; no exporter deployment or error-path observability matrix.
argi-graph-example/parallel-nodes Fork/join branches, an append reducer, explicit executors, and streamed node output.
Separate stock/credit/shipping checks join before an eligibility branch; test source enumerates all eight input combinations.
Local business checks and executor ownership; no inventory or payment service is contacted.
argi-graph-example/parallel-subgraph Joins order checks and creates a receipt in a nested graph. Local order-check fixture and nested receipt graph; no external fulfillment.
argi-graph-example/persistence File checkpoints, thread identity, history inspection, and recovery with a fresh graph.
Checkpoint history projection, fresh-graph recovery, editing pending state and keeping another thread paused.
Fresh graph and saver objects demonstrate restoration; OS process crashes and concurrent writers are not validated.
argi-graph-example/plantuml Exports PlantUML and Mermaid representations without invoking the graph. Diagram source export only; external image renderers are not invoked.
argi-graph-example/runtime-store Separates transient invocation metadata, thread state, and long-lived namespaced memory.
Namespace isolation, upsert, filtered/sorted pagination, targeted deletion and missing-item behavior.
MemoryStore demonstrates contracts; it is not durable storage or an authorization boundary.
argi-graph-example/scheduling Schedules a graph at a fixed delay and shuts down the task manager after completion.
Caller-selectable fixed-delay, fixed-rate and cron modes with bounded waiting and scheduler shutdown.
Single-process schedules; no distributed lock, misfire recovery or clustered scheduler.
argi-graph-example/spring-ai-integration Adapts a Spring AI model into a neutral streaming LlmNode and consumes graph events. One streaming LlmNode; provider-specific event extensions and live cancellation are not validated.
argi-graph-example/state-serialization Append and replace reducers plus neutral message serialization round trips.
Complete assistant/tool exchange, metadata, binary image content, text editing that preserves attachments and checkpoint round-trip equality.
Neutral text, tool and image messages; live audio/video provider support is not demonstrated.
argi-graph-example/subgraph-as-compiled-graph Embeds a compiled child directly and demonstrates reusable state transformation. Compiled child composition; no nested runtime migration or distributed execution.
argi-graph-example/subgraph-as-node Explicitly maps parent input/output to a child graph with private state. Explicit parent/child state mapping; no remote child execution.
argi-graph-example/subgraphs A StateGraph subgraph shares parent state and produces a normalized invoice. Shared parent/child state example; no distributed subgraph execution.
argi-graph-example/recoverable-runs Application-owned trusted context and data-only RunSpec round trip; same-submission deduplication; task state transitions; lease handoff and renewal; stale-owner and stale-revision rejection; atomic checkpoint, journal and outbox commits; logical session release. MemoryRunStore is not restart-durable. No autonomous task executor, identity service, distributed backend or outbox dispatcher is implemented.

Additional scenario entry points

Use -Dexample.mainClass=<class> with tools/run.sh. Each module README includes the exact command, prerequisites and required arguments.

Module Entry point Runtime Observable behavior
argi-adapter-example/agentscope AgentScopeScenarios model Exercises neutral async calls and demand-controlled streaming through this adapter.
argi-adapter-example/google-adk GoogleAdkScenarios model Exercises neutral async calls and demand-controlled streaming through this adapter.
argi-adapter-example/langchain4j LangChain4jScenarios model Exercises neutral async calls and demand-controlled streaming through this adapter.
argi-adapter-example/spring-ai SpringAiScenarios model Exercises neutral async calls and demand-controlled streaming through this adapter.
argi-agent-example/agent-as-tool StructuredDelegation model Exposes a typed specialist input while keeping parent reasoning out of the child context.
argi-agent-example/agentic-rag RetrievalScenarios local Makes source selection and the no-evidence path inspectable without a model.
argi-agent-example/context-compaction CompactionScenarios model Supplies a long transcript and checks the actual summary marker in saved state.
argi-agent-example/context-engineering ConversationSessions model Reuses one agent while keeping each customer's checkpoint history separate.
argi-agent-example/hooks-and-retries RetryScenarios model Forces one transient tool failure so that the retry path is actually exercised.
argi-agent-example/interceptors ContextEditingScenarios local Shows outbound tool-result compaction independently of provider response variability.
argi-agent-example/interceptors FallbackAgent model Configures a separate fallback model while preserving the neutral request pipeline.
argi-agent-example/interceptors MessageSanitizerScenarios local Inspects empty assistant-content normalization and model-visible tool exception text.
argi-agent-example/interceptors ToolPolicyScenarios model Compares model-selected tools with explicitly requested tool emulation.
argi-agent-example/multi-agent ParallelReview model Combines independent reviewers with a concurrency bound and an application merge policy.
argi-agent-example/multi-agent RevisionUntilReady model Stops on an explicit review marker, with a three-iteration ceiling.
argi-agent-example/planner PlanValidationScenarios local Validates plans locally; no capability is executed by validation.
argi-agent-example/react-tools DirectTrackingTool model Returns the application result directly instead of asking the model to rewrite it.
argi-agent-example/react-tools ToolScenarios local Exercises successful calls, invalid arguments, missing data and unknown tool names.
argi-agent-example/structured-output TicketValidationScenarios local Shows that valid JSON alone does not make a valid domain result.
argi-agent-example/structured-output TypedTicketAgent model Demonstrates ReactAgent's outputType in addition to the lower-level response format.
argi-agent-example/support-workflow SupportReview model Keeps a review decision attached to the saved draft and its checkpoint cursor.
argi-extensions-example/document-parsing DocumentIngestion local Reads caller-selected JSON or text and projects parsed documents into neutral records.
argi-extensions-example/jdbc-chat-memory JdbcMemoryLifecycle local Demonstrates window eviction, reopening, isolation and deletion using local H2.
argi-extensions-example/mcp-client CatalogToolCall service Calls only the read-only lookup tool supplied by the companion registry example.
argi-graph-example/conditional-routing RoutingScenarios local Compares both sides of the severity boundary using the same compiled graph.
argi-graph-example/human-in-the-loop ApprovalScenarios local Resolves two independent pending requests with different human decisions.
argi-graph-example/parallel-nodes OrderFulfillment local Joins all checks before choosing whether an order is eligible for fulfillment.
argi-graph-example/persistence RecoveryScenarios local Reopens the saver, edits a suspended state and proves that another thread stays paused.
argi-graph-example/runtime-store StoreLifecycle local Demonstrates upsert, namespace isolation, filtered pagination and targeted deletion.
argi-graph-example/state-serialization MessageRoundTrip local Round-trips binary content and tool messages without making a model request.
argi-graph-example/recoverable-runs RunConflictScenarios local Rejects changed submissions, competing owners, stale revisions and invalid atomic writes.

Remaining feature families

The repository does not claim complete coverage of the upstream public API. In particular, production recovery under concurrent writers, distributed scheduling, full A2A server/task lifecycles, all MCP resource/prompt/authentication operations, all built-in tools, all document parsers, advanced retrieval/reranking, and live audio/video provider behavior are outside the implemented scenarios. Backend profiles configure integrations but do not prove their connectivity or behavioral parity.

Verification boundary

The source inventory and runtime validation serve different purposes. Local builds, model calls and the Studio HTTP/SSE workflow were executed on 2026-10-15; validation results record their outcomes. Some gateway-backed runs remain unsuccessful, and external backend services were not started. Performance, load, capacity, chaos and backend interoperability are unverified. CI checks the catalog, Java formatting and compilation. Runtime behavior is inspected through documented entry points; no test suites or coverage gates remain.

Primary evidence is the sibling argi-website/docs/frameworks, argi/argi-api, argi/argi-graph-core, argi/argi-agent-framework, and argi-extensions source tree. Pinned dependency revisions are recorded in compatibility.md.

Current main additions

Example Demonstrated behavior Limit
tool-execution-policies Missing identity and revoked permission yield auth-denied with zero callbacks; invalid arguments yield error with zero callbacks; a registered invoice decline yields business-failed; an unregistered decline stays SUCCESS. The ledger is an in-process example. SelectionFailurePolicies deliberately injects selector unavailability; EffectAwareRetries injects an uncertain timeout. No model-quality, real authorization provider or external exactly-once guarantee is demonstrated.
context-provenance Application instructions remain trusted; retrieved and child content are untrusted; summaries are derived and retain attribution. Summary text is supplied by the application. This does not run a summarization model, prove prompt-injection immunity or authenticate serialized metadata.
background-tasks The third submission and a duplicate ID are rejected; both accepted tasks complete after the gate opens; owned resources close. This is a local JVM repository, without tenant isolation or crash recovery. Results may expire. Cancelling or hiding active work does not immediately free its slot.
batched-array-loop [1,2,3,4,5] with batch size 2 yields [1,2], [3,4], [5]. Explicit size 1 keeps array framing; the legacy constructor yields scalar text. This inspects dispatch without a model-backed child. Batching does not enable parallel execution or establish throughput improvements.
versioned-recovery A version-one run resolves version one even when version two exists; missing old versions and incompatible codecs are rejected. MemoryRunStore cannot enter durable mode. Registry values are local data definitions. This is an admission contract, not a task runner, persistent backend or cross-JVM recovery demonstration.