Fix Types
The 7 types of automatic fixes.
Risicare can generate 7 types of declarative fixes.
Overview
Prompt
Modify prompts and examples
Parameter
Adjust LLM parameters
Tool
Fix tool configuration
Retry
Add retry logic
Fallback
Alternative strategies
Guard
Input/output validation
Routing
Agent delegation
Fix Structure
All fixes share a common structure:
{
"fix_id": "fix-abc123",
"type": "retry",
"target": {
"error_codes": ["TOOL.EXECUTION.TIMEOUT"],
"agents": ["researcher"],
"tools": ["search_api"]
},
"config": {
"max_attempts": 3,
"backoff_seconds": 2
},
"rollback_strategy": {
"type": "immediate",
"trigger": "error_rate > baseline * 1.1"
},
"metadata": {
"created_at": "2024-01-15T10:00:00Z",
"diagnosis_id": "diag-xyz789",
"confidence": 0.85
}
}Targeting
Fixes can target specific:
| Target | Description |
|---|---|
error_codes | Specific error codes |
agents | Named agents |
tools | Specific tools |
models | LLM models |
environments | dev/staging/prod |
Rollback Strategies
| Strategy | Description |
|---|---|
immediate | Instant rollback on trigger |
gradual | Ramp down over time |
manual | Require human approval |
Fix Precedence
When multiple fixes match:
- Most specific target wins
- Higher confidence wins
- Most recent wins
SDK Integration
Fix Runtime has nothing to apply until you promote a fix
risicare.init() starts the Fix Runtime automatically. It has no fixes to
apply by default: /api/v1/fixes/active returns an empty list while every
generated fix sits in draft. Promoting one with
POST /api/v1/fixes/{fix_id}/promote moves it to canary, after which the
runtime picks it up on its next refresh. No fix has ever been promoted in
production, so treat that path as working-but-unproven. See
Fix Runtime.
from risicare import init_runtime, FixRuntimeConfig
# init() already starts the runtime; this is only needed for custom config
runtime = init_runtime(config=FixRuntimeConfig(
api_endpoint="https://app.risicare.ai",
api_key="rsk-...",
))Managing Fixes
Fixes are normally created by the diagnosis pipeline. A POST /api/v1/fixes (create) and PATCH /api/v1/fixes/{fix_id} (update) API also exist and accept a member-role key — but in practice fixes are surfaced for review rather than authored by hand. There is no delete-fix API. Today every fix stays in draft.
Via Dashboard
- Navigate to Healing → Fixes
- Browse generated fix recommendations and their diagnosis
- Inspect each fix's type, config, and confidence
Via API
# List fixes (all are status=draft today)
curl -X GET "https://app.risicare.ai/api/v1/fixes" \
-H "Authorization: Bearer rsk-..."
# Get a single fix
curl -X GET "https://app.risicare.ai/api/v1/fixes/{fix_id}" \
-H "Authorization: Bearer rsk-..."
# List active (deployed) fixes — empty until stage-4 promotion is connected
curl -X GET "https://app.risicare.ai/api/v1/fixes/active" \
-H "Authorization: Bearer rsk-..."Promotion is manual and admin-only
The only path that moves a fix out of draft is POST /api/v1/fixes/{fix_id}/promote, which requires the owner/admin role (any owner/admin API key, or a dashboard session) and is not invoked automatically. It is part of the not-yet-connected deployment pipeline.
Next Steps
Select a fix type to learn more: