2.0 KiB
Audita LLM Runtime
Scope
This document describes the structured LLM runtime and scheduler behavior.
Client Boundary
All runtime LLM calls go through contracts.StructuredLLMClient.
Primary adapter:
internal/framework/llm/OpenAICompatibleClient
Request/Response Behavior
The OpenAI-compatible adapter sends chat completions requests with:
- model;
- messages;
response_format.type = json_schema;- strict schema envelope (
name,schema,strict=true).
The response is decoded into the requested structured output target.
Response Schema Registry
Structured response schemas are registered in internal/framework/responseschema:
correction_setvalidator_decision_set
Each schema includes stable diagnostics metadata (id, version, name, sha256).
Retries and Error Handling
Adapter retries apply to retryable conditions (for example transport/decoding/retryable status classes) up to configured max_retries.
Errors are sanitized to redact configured API-key values before surfacing.
Malformed structured output detection is shared through internal/framework/structuredoutput and is used by:
- proposal generation;
- LLM-backed validators.
Scheduling and Concurrency
internal/framework/llm/Scheduler provides FIFO, context-aware permit gating.
Runner composes scheduler limits across:
- total LLM concurrency;
- proposal LLM concurrency;
- validation LLM concurrency.
Scheduler release is guarded to avoid permit leaks on cancellation/error.
Diagnostics and Redaction
internal/framework/llm/DiagnosticsWriter writes request/response/error artifacts.
Configured secrets are derived from llm.ConfiguredSecrets(cfg) and redacted from:
- diagnostics payloads;
- surfaced runtime/adapter errors.
Key Tests
internal/framework/llm/openai_compatible_client_test.gointernal/framework/llm/scheduler_test.gointernal/framework/llm/diagnostics_test.gointernal/framework/responseschema/registry_test.gointernal/framework/structuredoutput/malformed_test.go