>_
.issue.db
/highway
Dashboard
Issues
Memory
Lessons
Audit Log
New Issue
Edit Issue #1044
Update issue details
Title *
Description
EARS SPEC: - The LLM router shall offer a provider 'prism' (OpenAI-compatible, base [llm.providers.prism] base_url default https://prism.rodmena.co.uk/v1) authenticated with the platform secret prism_api_key, read through Config.get_secret (file, then SECRET_PRISM_API_KEY env; #924). - default_route and the agent/fast/smart/cheap routes shall use prism/deepseek-v4-flash as the first candidate; Ollama stays configured only for embeddings until Prism serves /v1/embeddings. - If prism_api_key is missing, then the prism provider shall not appear in any route and /api/v1/health llm_routes shall report the routes with zero live candidates as down. - If Prism answers 400, 401, 403, 404 or 413, then the LLM step shall fail non-retryably with Prism's error code and message (<= 500 chars). - If Prism answers 429, then the step shall be retried no earlier than the reset time named in the response (Retry-After when present), within the task's retry policy. - If Prism answers 503 (model_unavailable, metering_unavailable, auth_service_unavailable), then the step shall retry with backoff honouring Retry-After; if 502 or 504, then at most one retry. - If a 200 response has finish_reason content_filter or length, then the step shall fail with that reason and shall not return partial content as success. - When a caller asks for structured output with a JSON Schema on deepseek-v4-flash, the router shall send response_format json_object with the schema in the system prompt and shall validate the parsed result against the schema; a result that does not validate shall fail the step (json_schema is refused upstream with 400, measured 2026-10-22). - The router shall send max_tokens on every Prism call (Prism reserves prompt + max_tokens against the TokenGate budget; reasoning tokens count against max_tokens). EVIDENCE 2026-10-22 22:28Z with the Highway key: models 200; chat 200 0.88 s; tools 200 finish_reason tool_calls; json_schema 400 'This response_format type is unavailable now'; json_object + prompt schema 200, values exact; crypto-trader alias 403 model_not_allowed. Limits: bucket 2000, 200/s, 1M req/day, 5e9 tokens/day. Single upstream (DeepSeek), no fallback until Prism #81. Parent #921, #913.
Priority
Low
Medium
High
Critical
Status
Open
In Progress
Closed
Won't Do
Due Date (YYYY-MM-DD)
Tags (comma separated)
Related Issues (IDs)
Enter IDs of issues related to this one. They will be linked as 'related'.
Update Issue
Cancel