Request and response shapes for training, distillation, preflight estimates, embedded agents, recipes, corrections, and the adapter-library routes. Start with the entrypoint for your HTTP operation, then open only the definitions it references. Unknown-field behavior is listed per shape. Preflight compatibility and capacity values are modeled estimates, and the library routes do not yet perform remote installs or uploads.
Schema identity
| Property | Value |
|---|---|
| Title | Kiln Training and Agent Control Plane API |
$id |
https://ericflo.github.io/kiln/contracts/kiln-control-plane-v1.schema.json |
| Dialect | https://json-schema.org/draft/2020-12/schema |
| Root type | Union of 61 public entrypoints |
| Root object | Defined by the selected entrypoint |
Entrypoints
Choose the request or response shape for the operation you are implementing. Each name links to its complete field table and constraints.
| Entrypoint | Purpose | Shape | Unknown fields |
|---|---|---|---|
AgentRunAbortResponse |
Acknowledgment that a cooperative abort was requested. | 1 field | Unknown fields rejected |
AgentRunEventsResponse |
Incremental event page with sequence information that lets clients detect truncated history. | 5 fields | Unknown fields rejected |
AgentRunListResponse |
Embedded agent runs Kiln currently retains. | 1 field | Unknown fields rejected |
AgentRunQueuedResponse |
Acknowledgment that a steering or follow-up message was queued for delivery. | 1 field | Unknown fields rejected |
AgentRunRecord |
Stored metadata and outcome for one embedded agent run. | 16 fields | Unknown fields rejected |
AgentRunsStatusResponse |
Whether embedded runs are enabled, whether the local pi executable is available, and current concurrency. |
7 fields | Unknown fields rejected |
AgentTrace |
Indexed pi session and its normalized training trajectory. |
12 fields | Unknown fields rejected |
AgentTracesListResponse |
All agent traces currently indexed by Kiln. | 1 field | Unknown fields rejected |
CancelTrainingJobResponse |
Cancellation result. Queued jobs stop immediately; running jobs stop cooperatively at the next training-step boundary and later appear as failed with a cancellation error. | 0 fields | Varies by composed variant |
CapacityRequest |
Inputs to the preflight capacity model. num_layers and hidden_size default to Qwen3.5-4B values when omitted, so send both for any other model. |
7 fields | Unknown fields accepted and ignored |
CapacityResponse |
Modeled capacity estimate and any preflight warnings. This is not a measured performance result. | 5 fields | Unknown fields rejected |
ClearCorrectionsResponse |
Number of active corrections removed. Previously trained history remains. | 2 fields | Unknown fields rejected |
CompatibilityResponse |
Filtered rows from Kiln's small, model-specific built-in estimate table. | 2 fields | Unknown fields rejected |
CorrectionRow |
One stored correction returned by Kiln. | 10 fields | Unknown fields rejected |
CorrectionRowInput |
Create or update one correction. Kiln can supply timestamps and training markers when they are omitted. | 10 fields | Unknown fields accepted and ignored |
CreateRunRequest |
Request to queue one embedded agent run. | 6 fields | Unknown fields accepted and ignored |
DeleteCorrectionResponse |
Confirmation that one correction was deleted. | 2 fields | Unknown fields rejected |
DeleteTrainingJobResponse |
Result of permanently deleting a terminal job from memory and, when present, its archive file. Active jobs must be cancelled first. | 3 fields | Unknown fields rejected |
DiscoverRequest |
Optional pi sessions directory on the Kiln server. |
1 field | Unknown fields accepted and ignored |
DiscoverResponse |
Number of traces indexed and the server-local directory scanned. | 2 fields | Unknown fields rejected |
DistillMergeRequest |
Request to distill behavior from one or more source adapters into a new adapter. | 6 fields | Unknown fields accepted and ignored |
DistillPumpRequest |
Knowledge-pump request with a registered teacher alias and a rollout budget. | 8 fields | Unknown fields accepted and ignored |
DistillRefreshRequest |
Two-phase request for learning new material and recovering instruction-following behavior. Automatic loading supports at most one gate across post_eval, if_eval_suite, and new_knowledge_eval_suite; disable config.auto_load for independent multi-suite diagnostics. |
10 fields | Unknown fields accepted and ignored |
DistillSelfRequest |
Self-distillation request that uses information available only during training. | 7 fields | Unknown fields accepted and ignored |
FrontDoorRequest |
Tagged request accepted by the shared /v1/train endpoint for all supported training workflows. |
0 fields | Varies by composed variant |
FrontDoorResponse |
Training workflow selected by Kiln and the resulting queue receipt. | 2 fields | Unknown fields rejected |
GrpoRequest |
GRPO submission using exactly one inline, local-path, or registered-dataset source. | 7 fields | Unknown fields accepted and ignored |
JudgeDistillRequest |
Request to distill a local judge from indexed agent traces. | 5 fields | Unknown fields accepted and ignored |
JudgeDistillResponse |
Queue receipt for a judge-distillation request. | 4 fields | Unknown fields rejected |
JudgeDriftCheckRequest |
Inputs accepted by the judge-drift route. After validation, the endpoint currently returns HTTP 501 and performs no drift check. | 4 fields | Unknown fields accepted and ignored |
LibraryListResponse |
Configured library URL and catalog response. The current endpoint returns an empty list because remote catalog access is not operational. | 3 fields | Unknown fields rejected |
ListResponse |
Corrections from the active set or training history. | 1 field | Unknown fields rejected |
MarkTrainedRequest |
Mark selected corrections as used to train a named adapter. | 2 fields | Unknown fields accepted and ignored |
MarkTrainedResponse |
Number of corrections marked as trained. | 2 fields | Unknown fields rejected |
MessageRequest |
Steering or follow-up message for an active run. | 1 field | Unknown fields accepted and ignored |
OpdRequest |
Direct OPD submission using either inline prompts or a replay dataset path on the server. | 5 fields | Unknown fields accepted and ignored |
OpenEnvInspectRequest |
One or more OpenEnv HTTP base URLs to discover, with optional origin-scoped server credential handles. environments is accepted as an input alias. |
2 fields | Unknown fields rejected |
OpenEnvInspectResponse |
Complete discovery results for the requested OpenEnv servers. | 2 fields | Unknown fields rejected |
OpenEnvRunList |
Newest-first retained OpenEnv run records. | 2 fields | Unknown fields rejected |
OpenEnvRunRequest |
A persisted OpenEnv rollout or rollout-and-train request with optional static and paired held-out environment evaluation. Immutable train contracts are preflighted before persistence or environment collection. environments is accepted as an input alias for environment_urls. |
24 fields | Unknown fields rejected |
OpenEnvRunStatus |
Persisted status, collection artifacts, immutable admitted training contract, and authoritative training and evaluation lifecycle for one OpenEnv run. Version 1 records may retain the historical terminal training_queued handoff; version 2 follows learning to completion; version 3 includes paired held-out environment evaluation; version 4 adds bounded FIFO execution admission; version 5 seals exact trainer settings before collection. | 21 fields | Unknown fields rejected |
OpenEnvTaskCatalogRequest |
Discover Task API support and optionally request one bounded task page from each OpenEnv server. environments is accepted as an input alias. |
6 fields | Unknown fields rejected |
OpenEnvTaskCatalogResponse |
Bounded Task API discovery results for the requested OpenEnv servers. | 2 fields | Unknown fields rejected |
OpenEnvTrainingPreflightReceipt |
Successful OpenEnv admission receipt containing the exact GRPO and optional post-evaluation contract the direct client must submit after collection. | 6 fields | Unknown fields rejected |
OpenEnvTrainingPreflightRequest |
Side-effect-free OpenEnv training intent checked before direct CLI collection. Kiln owns rollout-derived GRPO fields. | 5 fields | Unknown fields rejected |
PublishPayload |
Optional description and uploader label for a future library publication. | 2 fields | Unknown fields accepted and ignored |
PublishToLibraryResponse |
Result of validating that a local adapter has the receipt required for publication. No remote upload occurs. | 7 fields | Unknown fields rejected |
QueueResponse |
Training jobs grouped into running, queued, and terminal collections. | 3 fields | Unknown fields rejected |
RecipeRunRequest |
Run either a built-in recipe by name or an inline recipe body, with optional placeholder values. | 0 fields | Varies by composed variant |
RecipeRunResponse |
Jobs and effective seeds queued for one recipe run. | 4 fields | Unknown fields rejected |
RecipesListResponse |
All built-in recipes and whether the current server can run each one. | 1 field | Unknown fields rejected |
SelfImproveRequest |
Request to queue the phases of one agent self-improvement round. | 5 fields | Unknown fields accepted and ignored |
SelfImproveResponse |
Job IDs and seeds queued for one self-improvement round. | 4 fields | Unknown fields rejected |
SftRequest |
SFT submission using exactly one inline, local-path, or registered-dataset source. | 6 fields | Unknown fields rejected |
TerminalStatusResponse |
Embedded-terminal security status, local pi path, working directory, and session state. |
6 fields | Unknown fields rejected |
TierDefaultsListResponse |
All built-in deployment-tier presets. | 1 field | Unknown fields rejected |
TierDefaultsResponse |
One requested preset and its built-in planning defaults. | 2 fields | Unknown fields rejected |
TrainingJobDetail |
Detailed job status with its loss curve, receipts, replay request, linked evals, and newest checkpoint. | 26 fields | Unknown fields rejected |
TrainingResponse |
Receipt returned after Kiln validates and queues a training request. | 4 fields | Unknown fields rejected |
TrainingStatus |
Current or archived status for one training job. | 16 fields | Unknown fields rejected |
Vec_TrainingStatus |
All training statuses Kiln currently retains. | 0 fields | Varies by composed variant |
Composition and conditional rules
Show exact composition rules
{
"oneOf": [
{
"$ref": "#/$defs/AgentRunAbortResponse"
},
{
"$ref": "#/$defs/AgentRunEventsResponse"
},
{
"$ref": "#/$defs/AgentRunListResponse"
},
{
"$ref": "#/$defs/AgentRunQueuedResponse"
},
{
"$ref": "#/$defs/AgentRunRecord"
},
{
"$ref": "#/$defs/AgentRunsStatusResponse"
},
{
"$ref": "#/$defs/AgentTrace"
},
{
"$ref": "#/$defs/AgentTracesListResponse"
},
{
"$ref": "#/$defs/CancelTrainingJobResponse"
},
{
"$ref": "#/$defs/CapacityRequest"
},
{
"$ref": "#/$defs/CapacityResponse"
},
{
"$ref": "#/$defs/ClearCorrectionsResponse"
},
{
"$ref": "#/$defs/CompatibilityResponse"
},
{
"$ref": "#/$defs/CorrectionRow"
},
{
"$ref": "#/$defs/CorrectionRowInput"
},
{
"$ref": "#/$defs/CreateRunRequest"
},
{
"$ref": "#/$defs/DeleteCorrectionResponse"
},
{
"$ref": "#/$defs/DeleteTrainingJobResponse"
},
{
"$ref": "#/$defs/DiscoverRequest"
},
{
"$ref": "#/$defs/DiscoverResponse"
},
{
"$ref": "#/$defs/DistillMergeRequest"
},
{
"$ref": "#/$defs/DistillPumpRequest"
},
{
"$ref": "#/$defs/DistillRefreshRequest"
},
{
"$ref": "#/$defs/DistillSelfRequest"
},
{
"$ref": "#/$defs/FrontDoorRequest"
},
{
"$ref": "#/$defs/FrontDoorResponse"
},
{
"$ref": "#/$defs/GrpoRequest"
},
{
"$ref": "#/$defs/JudgeDistillRequest"
},
{
"$ref": "#/$defs/JudgeDistillResponse"
},
{
"$ref": "#/$defs/JudgeDriftCheckRequest"
},
{
"$ref": "#/$defs/LibraryListResponse"
},
{
"$ref": "#/$defs/ListResponse"
},
{
"$ref": "#/$defs/MarkTrainedRequest"
},
{
"$ref": "#/$defs/MarkTrainedResponse"
},
{
"$ref": "#/$defs/MessageRequest"
},
{
"$ref": "#/$defs/OpdRequest"
},
{
"$ref": "#/$defs/OpenEnvInspectRequest"
},
{
"$ref": "#/$defs/OpenEnvInspectResponse"
},
{
"$ref": "#/$defs/OpenEnvRunList"
},
{
"$ref": "#/$defs/OpenEnvRunRequest"
},
{
"$ref": "#/$defs/OpenEnvRunStatus"
},
{
"$ref": "#/$defs/OpenEnvTaskCatalogRequest"
},
{
"$ref": "#/$defs/OpenEnvTaskCatalogResponse"
},
{
"$ref": "#/$defs/OpenEnvTrainingPreflightReceipt"
},
{
"$ref": "#/$defs/OpenEnvTrainingPreflightRequest"
},
{
"$ref": "#/$defs/PublishPayload"
},
{
"$ref": "#/$defs/PublishToLibraryResponse"
},
{
"$ref": "#/$defs/QueueResponse"
},
{
"$ref": "#/$defs/RecipeRunRequest"
},
{
"$ref": "#/$defs/RecipeRunResponse"
},
{
"$ref": "#/$defs/RecipesListResponse"
},
{
"$ref": "#/$defs/SelfImproveRequest"
},
{
"$ref": "#/$defs/SelfImproveResponse"
},
{
"$ref": "#/$defs/SftRequest"
},
{
"$ref": "#/$defs/TerminalStatusResponse"
},
{
"$ref": "#/$defs/TierDefaultsListResponse"
},
{
"$ref": "#/$defs/TierDefaultsResponse"
},
{
"$ref": "#/$defs/TrainingJobDetail"
},
{
"$ref": "#/$defs/TrainingResponse"
},
{
"$ref": "#/$defs/TrainingStatus"
},
{
"$ref": "#/$defs/Vec_TrainingStatus"
}
]
}
Kiln contract annotations
Show exact Kiln annotations and examples
{
"x-kiln-entrypoints": [
"AgentRunAbortResponse",
"AgentRunEventsResponse",
"AgentRunListResponse",
"AgentRunQueuedResponse",
"AgentRunRecord",
"AgentRunsStatusResponse",
"AgentTrace",
"AgentTracesListResponse",
"CancelTrainingJobResponse",
"CapacityRequest",
"CapacityResponse",
"ClearCorrectionsResponse",
"CompatibilityResponse",
"CorrectionRow",
"CorrectionRowInput",
"CreateRunRequest",
"DeleteCorrectionResponse",
"DeleteTrainingJobResponse",
"DiscoverRequest",
"DiscoverResponse",
"DistillMergeRequest",
"DistillPumpRequest",
"DistillRefreshRequest",
"DistillSelfRequest",
"FrontDoorRequest",
"FrontDoorResponse",
"GrpoRequest",
"JudgeDistillRequest",
"JudgeDistillResponse",
"JudgeDriftCheckRequest",
"LibraryListResponse",
"ListResponse",
"MarkTrainedRequest",
"MarkTrainedResponse",
"MessageRequest",
"OpdRequest",
"OpenEnvInspectRequest",
"OpenEnvInspectResponse",
"OpenEnvRunList",
"OpenEnvRunRequest",
"OpenEnvRunStatus",
"OpenEnvTaskCatalogRequest",
"OpenEnvTaskCatalogResponse",
"OpenEnvTrainingPreflightReceipt",
"OpenEnvTrainingPreflightRequest",
"PublishPayload",
"PublishToLibraryResponse",
"QueueResponse",
"RecipeRunRequest",
"RecipeRunResponse",
"RecipesListResponse",
"SelfImproveRequest",
"SelfImproveResponse",
"SftRequest",
"TerminalStatusResponse",
"TierDefaultsListResponse",
"TierDefaultsResponse",
"TrainingJobDetail",
"TrainingResponse",
"TrainingStatus",
"Vec_TrainingStatus"
],
"x-kiln-examples": {
"AgentRunAbortResponse": [
{
"aborting": true
}
],
"AgentRunEventsResponse": [
{
"events": [
{
"seq": 0,
"event": {
"type": "message_end"
}
}
],
"next_after": 1,
"status": "running",
"first_available_seq": 0,
"truncated": false
}
],
"AgentRunListResponse": [
{
"runs": [
{
"id": "run-1",
"task": "Fix the failing test",
"cwd": "/srv/project",
"status": "completed",
"created_unix_ms": 1700000000000,
"queue_seq": 1,
"started_unix_ms": 1700000000010,
"finished_unix_ms": 1700000001000,
"num_turns": 2,
"num_tool_calls": 1,
"session_id": "session-1",
"session_path": "/srv/adapters/agent_runs/sessions/session-1.jsonl",
"trace_indexed": true,
"last_assistant_text": "Fixed."
}
]
}
],
"AgentRunQueuedResponse": [
{
"queued": true
}
],
"AgentRunRecord": [
{
"id": "run-1",
"task": "Fix the failing test",
"cwd": "/srv/project",
"status": "completed",
"created_unix_ms": 1700000000000,
"queue_seq": 1,
"started_unix_ms": 1700000000010,
"finished_unix_ms": 1700000001000,
"num_turns": 2,
"num_tool_calls": 1,
"session_id": "session-1",
"session_path": "/srv/adapters/agent_runs/sessions/session-1.jsonl",
"trace_indexed": true,
"last_assistant_text": "Fixed."
}
],
"AgentRunsStatusResponse": [
{
"enabled": true,
"disabled_reason": null,
"pi_available": true,
"pi_path": "/usr/bin/pi",
"max_concurrent_runs": 2,
"active_runs": 0,
"sessions_dir": "/srv/adapters/agent_runs/sessions"
}
],
"AgentTrace": [
{
"id": "session-1",
"working_dir": "/srv/project",
"num_turns": 2,
"num_tool_calls": 1,
"outcome": {
"ended_with_exit_0": true,
"user_edited_agent_files": [],
"has_followup_attempt": null
},
"first_event_at": "2026-07-14T12:00:00Z",
"last_event_at": "2026-07-14T12:01:00Z",
"forked": false,
"parent_id": null,
"tool_manifest_sha": null,
"prompt_messages": [
{
"role": "user",
"content": "Explain 2 + 2."
}
],
"trajectory": [
{
"role": "assistant",
"content": "Fixed.",
"kind": "action"
}
]
}
],
"AgentTracesListResponse": [
{
"traces": [
{
"id": "session-1",
"working_dir": "/srv/project",
"num_turns": 2,
"num_tool_calls": 1,
"outcome": {
"ended_with_exit_0": true,
"user_edited_agent_files": [],
"has_followup_attempt": null
},
"first_event_at": "2026-07-14T12:00:00Z",
"last_event_at": "2026-07-14T12:01:00Z",
"forked": false,
"parent_id": null,
"tool_manifest_sha": null,
"prompt_messages": [
{
"role": "user",
"content": "Explain 2 + 2."
}
],
"trajectory": [
{
"role": "assistant",
"content": "Fixed.",
"kind": "action"
}
]
}
]
}
],
"CancelTrainingJobResponse": [
{
"status": "cancelled",
"job_id": "train-1"
},
{
"status": "cancelling",
"job_id": "train-2",
"message": "stop requested — the trainer aborts at the next step boundary"
}
],
"CapacityRequest": [
{
"rollouts": 100,
"tokens_per_rollout": 512,
"top_k": 32,
"rank": 32
}
],
"CapacityResponse": [
{
"bits_needed": 256000,
"bits_storable_in_lora": 41943040,
"capacity_ratio": 163.84,
"expected_overlap_at_step_50": 0.9,
"warnings": []
}
],
"ClearCorrectionsResponse": [
{
"status": "cleared",
"removed": 1
}
],
"CompatibilityResponse": [
{
"matches": [
{
"teacher": "qwen3.6-27b@vllm",
"student": "Qwen3.5-4B@kiln",
"domain": "math_reasoning",
"predicted_initial_overlap": 0.78,
"recommended_rank": 64,
"cold_start_epochs": null,
"expected_gpu_hours": 4,
"expected_cost_usd": null,
"validation_eval": "math-frontier-eval",
"expected_eval_delta_points": 12
}
],
"note": null
}
],
"CorrectionRow": [
{
"request_id": "chat-1",
"agent": "pi",
"adapter": null,
"user": "2 + 2?",
"original": "5",
"ideal": "4",
"truncated": false,
"created_at": "2026-07-14T12:00:00Z"
}
],
"CorrectionRowInput": [
{
"request_id": "chat-1",
"agent": "pi",
"adapter": null,
"user": "2 + 2?",
"original": "5",
"ideal": "4",
"truncated": false,
"created_at": ""
}
],
"CreateRunRequest": [
{
"task": "Fix the failing test",
"cwd": "/srv/project",
"thinking_level": "high",
"timeout_secs": 900
}
],
"DeleteCorrectionResponse": [
{
"status": "deleted",
"request_id": "chat-1"
}
],
"DeleteTrainingJobResponse": [
{
"job_id": "train-1",
"status": "deleted",
"removed_archive_file": true
}
],
"DiscoverRequest": [
{
"path": "/home/user/.pi/agent/sessions"
}
],
"DiscoverResponse": [
{
"indexed": 4,
"path": "/home/user/.pi/agent/sessions"
}
],
"DistillMergeRequest": [
{
"name": "merged-v1",
"sources": [
{
"adapter": "math-v1",
"weight": 1
}
],
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"DistillPumpRequest": [
{
"name": "rust-v1",
"teacher": "teacher-large@local",
"mode": {
"domain": "rust"
},
"rollout_budget": 1000,
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"DistillRefreshRequest": [
{
"name": "assistant-v1",
"new_data": {
"dataset": "new-docs"
},
"behavioural_teacher": "prior-self",
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"DistillSelfRequest": [
{
"name": "concise-v1",
"mode": "conciseness",
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"FrontDoorRequest": [
{
"kind": "sft",
"examples": [
{
"messages": [
{
"role": "user",
"content": "Explain 2 + 2."
},
{
"role": "assistant",
"content": "4"
}
]
}
],
"config": {
"output_name": "math-v1",
"optimizer": {
"kind": "muon"
}
}
}
],
"FrontDoorResponse": [
{
"picked": "sft",
"training": {
"job_id": "train-1",
"state": "queued",
"effective_seed": "42",
"message": "Queued training job"
}
}
],
"GrpoRequest": [
{
"groups": [
{
"messages": [
{
"role": "user",
"content": "Explain 2 + 2."
}
],
"completions": [
{
"text": "4",
"reward": 1
},
{
"text": "5",
"reward": 0
}
]
}
],
"config": {
"optimizer": {
"kind": "muon"
}
}
}
],
"JudgeDistillRequest": [
{
"name": "judge-pi-v1",
"teacher": "teacher-large@local",
"include_pi_share": false,
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"JudgeDistillResponse": [
{
"job_id": "judge-1",
"state": "queued",
"effective_seed": "42",
"message": "Queued training job"
}
],
"JudgeDriftCheckRequest": [
{
"judge": "judge-pi-v1",
"teacher": "teacher-large@local",
"sample_size": 50,
"agreement_threshold": 0.8
}
],
"LibraryListResponse": [
{
"backend": "https://library.kiln.run",
"adapters": [],
"note": "Library backend not yet operational"
}
],
"ListResponse": [
{
"corrections": [
{
"request_id": "chat-1",
"agent": "pi",
"adapter": null,
"user": "2 + 2?",
"original": "5",
"ideal": "4",
"truncated": false,
"created_at": "2026-07-14T12:00:00Z"
}
]
}
],
"MarkTrainedRequest": [
{
"request_ids": [
"chat-1"
],
"adapter": "math-v1"
}
],
"MarkTrainedResponse": [
{
"status": "marked",
"marked": 1
}
],
"MessageRequest": [
{
"message": "Also run the focused test."
}
],
"OpdRequest": [
{
"prompts": [
{
"messages": [
{
"role": "user",
"content": "Explain 2 + 2."
}
]
}
],
"teacher": "teacher-large@local",
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"OpenEnvInspectRequest": [
{
"environment_urls": [
"http://127.0.0.1:8000"
],
"credential_ids": [
"local-arcade"
]
}
],
"OpenEnvInspectResponse": [
{
"schema": "kiln.openenv-inspection.v1",
"environments": [
{
"identity": {
"schema": "kiln.openenv-identity.v1",
"client_profile": "openenv-python-sdk-v1",
"base_url": "http://127.0.0.1:8000",
"websocket_url": "ws://127.0.0.1:8000/ws",
"authentication": "bearer",
"openapi_version": "3.1.0",
"environments": [
"bandit"
],
"metadata": {
"name": "bandit",
"description": "Choose an arm.",
"readme_content": null,
"version": "1.0.0",
"author": null,
"documentation_url": null
},
"schema_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"discovery_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
},
"schema": {
"action": {
"type": "object",
"required": [
"arm"
]
},
"observation": {
"type": "object"
},
"state": {
"type": "object"
}
}
}
]
}
],
"OpenEnvRunList": [
{
"schema": "kiln.openenv-run-list.v5",
"runs": [
{
"schema": "kiln.openenv-run.v5",
"run_id": "80a26e21-8451-4a64-8666-890c06fd80bd",
"kind": "train",
"state": "environment_evaluating",
"request": {
"kind": "train",
"idempotency_key": "experiment:arcade:17",
"environment_urls": [
"http://127.0.0.1:8000"
],
"credential_ids": [
"local-arcade"
],
"adapter": "base",
"groups": 8,
"group_size": 4,
"seed_start": 0,
"reset_options": {},
"environment_reset_options": [
{
"difficulty": "hard"
}
],
"max_steps": 8,
"concurrency": 4,
"max_action_tokens": 256,
"thinking_budget_tokens": 128,
"temperature": 1,
"thinking": false,
"protocol_error_reward": -1,
"max_recoverable_errors": 3,
"capacity_wait_seconds": 300,
"output_adapter": "bandit-agent",
"training_config": {
"lora_rank": 8
},
"auto_load": true,
"post_eval": {
"suite": "qwen3.5-agentic-core",
"data_scope": "held-out",
"include_baseline": true
},
"environment_eval": {
"groups": 20,
"group_size": 1,
"gate": {
"min_mean_return": 0.5,
"min_mean_improvement": 0.05
}
}
},
"submitted_unix_ms": 1700000000000,
"admission": {
"max_active_runs": 4,
"sequence": 17,
"admitted_unix_ms": 1700000000250,
"queue_wait_ms": 250
},
"progress": {
"groups_completed": 3,
"groups_total": 8,
"rollouts_completed": 12,
"rollouts_total": 32
},
"rollout_stats": {
"mean_episode_return": 0.75,
"min_episode_return": 0,
"max_episode_return": 1,
"done_count": 31,
"max_steps_count": 1,
"invalid_model_action_count": 0,
"protocol_error_count": 0,
"recoverable_protocol_error_count": 2,
"capacity_retry_count": 1,
"total_environment_steps": 48,
"total_model_tokens": 384,
"mean_model_latency_ms": 125.5
},
"warnings": [
"One rollout produced no assistant tokens and was excluded."
],
"environments": [
{
"schema": "kiln.openenv-identity.v1",
"client_profile": "openenv-python-sdk-v1",
"base_url": "http://127.0.0.1:8000",
"websocket_url": "ws://127.0.0.1:8000/ws",
"authentication": "bearer",
"openapi_version": "3.1.0",
"environments": [
"bandit"
],
"metadata": {
"name": "bandit",
"description": "Choose an arm.",
"readme_content": null,
"version": "1.0.0",
"author": null,
"documentation_url": null
},
"schema_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"discovery_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
}
],
"artifacts": [
{
"kind": "train_receipt",
"url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/train_receipt",
"sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"bytes": 4096
},
{
"kind": "adapter_manifest",
"url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/adapter_manifest",
"sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"bytes": 2048
}
],
"training_job_id": "grpo-openenv-1",
"training_contract": {
"schema": "kiln.openenv-training-contract.v1",
"effective_config": {
"base_adapter": null,
"output_name": "bandit-agent",
"auto_load": false,
"behavior_policy": "no_importance_correction",
"lora_rank": 8
},
"post_eval": {
"suite": "qwen3.5-agentic-core",
"data_scope": "held-out",
"include_baseline": true
},
"behavior_policy": {
"served_model_id": "Qwen3.5-4B",
"base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"implementation": "kiln-native"
}
},
"training": {
"job_id": "grpo-openenv-1",
"state": "completed",
"progress": 1,
"current_loss": 0.31,
"epoch": 3,
"adapter_path": "/srv/adapters/bandit-agent",
"training_data": {
"source": "inline",
"admitted_corpus_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"rows": 8,
"openenv": {
"schema": "kiln.openenv-training-data.v1",
"groups": 8,
"rollouts": 32,
"unique_seeds": 8,
"seed_min": "0",
"seed_max": "7",
"total_steps": 32,
"terminations": {
"done": 32,
"max_steps": 0,
"invalid_model_action": 0,
"protocol_error": 0
},
"group_plan_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"behavior_policy": {
"served_model_id": "Qwen3.5-4B",
"base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"implementation": "kiln-native"
},
"environments": [
{
"environment_name": "bandit",
"environment_base_url": "http://127.0.0.1:8000",
"openapi_version": "3.1.0",
"discovery_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"environment_schema_sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"action_schema_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"groups": 8,
"rollouts": 32,
"total_steps": 32,
"terminations": {
"done": 32,
"max_steps": 0,
"invalid_model_action": 0,
"protocol_error": 0
}
}
]
}
}
},
"environment_evaluation": {
"state": "collecting_candidate",
"seed_start": 8,
"groups": 20,
"group_size": 1,
"baseline": {},
"candidate": {
"adapter": "bandit-agent",
"adapter_content_revision": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"execution_provenance_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
},
"progress": {
"state": "collecting_candidate",
"groups_completed": 8,
"groups_total": 20,
"rollouts_completed": 8,
"rollouts_total": 20
}
}
}
]
}
],
"OpenEnvRunRequest": [
{
"kind": "train",
"idempotency_key": "experiment:arcade:17",
"environment_urls": [
"http://127.0.0.1:8000"
],
"credential_ids": [
"local-arcade"
],
"adapter": "base",
"groups": 8,
"group_size": 4,
"seed_start": 0,
"reset_options": {},
"environment_reset_options": [
{
"difficulty": "hard"
}
],
"max_steps": 8,
"concurrency": 4,
"max_action_tokens": 256,
"thinking_budget_tokens": 128,
"temperature": 1,
"thinking": false,
"protocol_error_reward": -1,
"max_recoverable_errors": 3,
"capacity_wait_seconds": 300,
"output_adapter": "bandit-agent",
"training_config": {
"lora_rank": 8
},
"auto_load": true,
"post_eval": {
"suite": "qwen3.5-agentic-core",
"data_scope": "held-out",
"include_baseline": true
},
"environment_eval": {
"groups": 20,
"group_size": 1,
"gate": {
"min_mean_return": 0.5,
"min_mean_improvement": 0.05
}
}
}
],
"OpenEnvRunStatus": [
{
"schema": "kiln.openenv-run.v5",
"run_id": "80a26e21-8451-4a64-8666-890c06fd80bd",
"kind": "train",
"state": "environment_evaluating",
"request": {
"kind": "train",
"idempotency_key": "experiment:arcade:17",
"environment_urls": [
"http://127.0.0.1:8000"
],
"credential_ids": [
"local-arcade"
],
"adapter": "base",
"groups": 8,
"group_size": 4,
"seed_start": 0,
"reset_options": {},
"environment_reset_options": [
{
"difficulty": "hard"
}
],
"max_steps": 8,
"concurrency": 4,
"max_action_tokens": 256,
"thinking_budget_tokens": 128,
"temperature": 1,
"thinking": false,
"protocol_error_reward": -1,
"max_recoverable_errors": 3,
"capacity_wait_seconds": 300,
"output_adapter": "bandit-agent",
"training_config": {
"lora_rank": 8
},
"auto_load": true,
"post_eval": {
"suite": "qwen3.5-agentic-core",
"data_scope": "held-out",
"include_baseline": true
},
"environment_eval": {
"groups": 20,
"group_size": 1,
"gate": {
"min_mean_return": 0.5,
"min_mean_improvement": 0.05
}
}
},
"submitted_unix_ms": 1700000000000,
"admission": {
"max_active_runs": 4,
"sequence": 17,
"admitted_unix_ms": 1700000000250,
"queue_wait_ms": 250
},
"progress": {
"groups_completed": 3,
"groups_total": 8,
"rollouts_completed": 12,
"rollouts_total": 32
},
"rollout_stats": {
"mean_episode_return": 0.75,
"min_episode_return": 0,
"max_episode_return": 1,
"done_count": 31,
"max_steps_count": 1,
"invalid_model_action_count": 0,
"protocol_error_count": 0,
"recoverable_protocol_error_count": 2,
"capacity_retry_count": 1,
"total_environment_steps": 48,
"total_model_tokens": 384,
"mean_model_latency_ms": 125.5
},
"warnings": [
"One rollout produced no assistant tokens and was excluded."
],
"environments": [
{
"schema": "kiln.openenv-identity.v1",
"client_profile": "openenv-python-sdk-v1",
"base_url": "http://127.0.0.1:8000",
"websocket_url": "ws://127.0.0.1:8000/ws",
"authentication": "bearer",
"openapi_version": "3.1.0",
"environments": [
"bandit"
],
"metadata": {
"name": "bandit",
"description": "Choose an arm.",
"readme_content": null,
"version": "1.0.0",
"author": null,
"documentation_url": null
},
"schema_sha256": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
"discovery_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
}
],
"artifacts": [
{
"kind": "train_receipt",
"url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/train_receipt",
"sha256": "sha256:7777777777777777777777777777777777777777777777777777777777777777",
"bytes": 4096
},
{
"kind": "adapter_manifest",
"url": "/v1/openenv/runs/80a26e21-8451-4a64-8666-890c06fd80bd/artifacts/adapter_manifest",
"sha256": "sha256:8888888888888888888888888888888888888888888888888888888888888888",
"bytes": 2048
}
],
"training_job_id": "grpo-openenv-1",
"training_contract": {
"schema": "kiln.openenv-training-contract.v1",
"effective_config": {
"base_adapter": null,
"output_name": "bandit-agent",
"auto_load": false,
"behavior_policy": "no_importance_correction",
"lora_rank": 8
},
"post_eval": {
"suite": "qwen3.5-agentic-core",
"data_scope": "held-out",
"include_baseline": true
},
"behavior_policy": {
"served_model_id": "Qwen3.5-4B",
"base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"implementation": "kiln-native"
}
},
"training": {
"job_id": "grpo-openenv-1",
"state": "completed",
"progress": 1,
"current_loss": 0.31,
"epoch": 3,
"adapter_path": "/srv/adapters/bandit-agent",
"training_data": {
"source": "inline",
"admitted_corpus_sha256": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
"rows": 8,
"openenv": {
"schema": "kiln.openenv-training-data.v1",
"groups": 8,
"rollouts": 32,
"unique_seeds": 8,
"seed_min": "0",
"seed_max": "7",
"total_steps": 32,
"terminations": {
"done": 32,
"max_steps": 0,
"invalid_model_action": 0,
"protocol_error": 0
},
"group_plan_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"behavior_policy": {
"served_model_id": "Qwen3.5-4B",
"base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"implementation": "kiln-native"
},
"environments": [
{
"environment_name": "bandit",
"environment_base_url": "http://127.0.0.1:8000",
"openapi_version": "3.1.0",
"discovery_sha256": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
"environment_schema_sha256": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
"action_schema_sha256": "sha256:6666666666666666666666666666666666666666666666666666666666666666",
"groups": 8,
"rollouts": 32,
"total_steps": 32,
"terminations": {
"done": 32,
"max_steps": 0,
"invalid_model_action": 0,
"protocol_error": 0
}
}
]
}
}
},
"environment_evaluation": {
"state": "collecting_candidate",
"seed_start": 8,
"groups": 20,
"group_size": 1,
"baseline": {},
"candidate": {
"adapter": "bandit-agent",
"adapter_content_revision": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"execution_provenance_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222"
},
"progress": {
"state": "collecting_candidate",
"groups_completed": 8,
"groups_total": 20,
"rollouts_completed": 8,
"rollouts_total": 20
}
}
}
],
"OpenEnvTaskCatalogRequest": [
{
"environment_urls": [
"http://127.0.0.1:8000"
],
"credential_ids": [
"local-arcade"
],
"split": "train",
"start": 0,
"limit": 2
}
],
"OpenEnvTaskCatalogResponse": [
{
"schema": "kiln.openenv-task-catalog.v1",
"catalogs": [
{
"base_url": "http://127.0.0.1:8000",
"catalog": {
"environment_name": "bandit",
"task_api": "available",
"splits": [
{
"name": "train",
"type": "train"
},
{
"name": "holdout",
"type": "validation"
}
],
"selected_split": "train",
"num_tasks": 3,
"start": 0,
"stop": 2,
"tasks": [
{
"id": 0,
"prompt": "Choose an arm.",
"difficulty": "easy"
},
{
"id": 1,
"prompt": "Choose again.",
"difficulty": "easy"
}
]
}
}
]
}
],
"OpenEnvTrainingPreflightReceipt": [
{
"schema": "kiln.openenv-training-preflight.v1",
"effective_config": {
"base_adapter": null,
"output_name": "bandit-agent",
"auto_load": true,
"behavior_policy": "no_importance_correction",
"lora_rank": 8
},
"behavior_policy": {
"served_model_id": "Qwen3.5-4B",
"base_model_sha256": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
"inference_config_sha256": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
"implementation": "kiln-native"
},
"capacity": {
"checked_unix_ms": 1700000000000,
"queued_jobs": 1,
"max_queued_jobs": 64,
"tracked_jobs": 4,
"max_tracked_jobs": 256
},
"capacity_reserved": false
}
],
"OpenEnvTrainingPreflightRequest": [
{
"adapter": "base",
"output_adapter": "bandit-agent",
"training_config": {
"lora_rank": 8
},
"auto_load": true
}
],
"PublishPayload": [
{
"description": "Math adapter",
"uploader": "local-user"
}
],
"PublishToLibraryResponse": [
{
"status": "ready_to_publish",
"backend": "https://library.kiln.run",
"intended_id": "math-v1@2026-07-14",
"uploader": "local-user",
"description": "Math adapter",
"receipt_schema_version": 1,
"note": "Local validation passed; no remote upload occurred."
}
],
"QueueResponse": [
{
"running": null,
"queued": [
{
"job_id": "train-1",
"job_type": "sft",
"adapter_name": "math-v1",
"position": 1
}
],
"completed": []
}
],
"RecipeRunRequest": [
{
"body": {
"name": "quick-sft",
"description": "Train one adapter",
"steps": [
{
"kind": "sft",
"name": "math-v1",
"examples_from": {
"examples": [
{
"messages": [
{
"role": "user",
"content": "Explain 2 + 2."
},
{
"role": "assistant",
"content": "4"
}
]
}
]
}
}
]
},
"inputs": {}
}
],
"RecipeRunResponse": [
{
"recipe": "quick-sft",
"job_ids": [
"train-1"
],
"effective_seeds": {
"train-1": "42"
},
"message": "Queued recipe"
}
],
"RecipesListResponse": [
{
"recipes": [
{
"name": "quick-sft",
"description": "Train one adapter",
"num_steps": 1,
"admission": {
"supported": true,
"unavailable_reason": null
}
}
]
}
],
"SelfImproveRequest": [
{
"agent": "pi-coder-current",
"judge": "judge-pi-v1",
"crisp": true,
"config": {
"training_mode": "on_policy",
"objective": "reverse_kl",
"loss": "teacher_top_k",
"top_k": 32,
"stable_opd": {
"mode": "off"
},
"optimizer": {
"kind": "muon"
}
}
}
],
"SelfImproveResponse": [
{
"job_ids": [
"opd-1",
"crisp-1"
],
"effective_seeds": {
"opd-1": "42",
"crisp-1": "43"
},
"state": "queued",
"message": "Self-improvement queued"
}
],
"SftRequest": [
{
"examples": [
{
"messages": [
{
"role": "user",
"content": "Explain 2 + 2."
},
{
"role": "assistant",
"content": "4"
}
]
}
],
"config": {
"output_name": "math-v1",
"optimizer": {
"kind": "muon"
}
}
}
],
"TerminalStatusResponse": [
{
"enabled": true,
"disabled_reason": null,
"pi_available": true,
"pi_path": "/usr/bin/pi",
"cwd": "/srv/project",
"session_active": false
}
],
"TierDefaultsListResponse": [
{
"tiers": [
{
"tier": "prosumer",
"default_logit_source": "LocalTeacher",
"default_loss": "teacher_top_k (K=32)",
"default_top_k": 32,
"lora_rank": 32,
"batch_size": 16,
"samples_per_prompt_default": 4,
"samples_per_prompt_data_multiplier": 32,
"max_rollout_tokens": 7168,
"auto_checkpoint_cadence_steps": 10,
"cost_cap_default_usd": 25,
"cold_start_overlap_threshold": 0.5,
"mixture_distillation_golden_fraction": 0.25,
"eval_gate_required": true,
"notifications_channels": [
"desktop_tray",
"email",
"webhook"
]
},
{
"tier": "laptop",
"default_logit_source": "LocalTeacher",
"default_loss": "teacher_top_k (K=32)",
"default_top_k": 32,
"lora_rank": 32,
"batch_size": 16,
"samples_per_prompt_default": 4,
"samples_per_prompt_data_multiplier": 32,
"max_rollout_tokens": 7168,
"auto_checkpoint_cadence_steps": 10,
"cost_cap_default_usd": 25,
"cold_start_overlap_threshold": 0.5,
"mixture_distillation_golden_fraction": 0.25,
"eval_gate_required": true,
"notifications_channels": [
"desktop_tray",
"email",
"webhook"
]
},
{
"tier": "corporate",
"default_logit_source": "LocalTeacher",
"default_loss": "teacher_top_k (K=32)",
"default_top_k": 32,
"lora_rank": 32,
"batch_size": 16,
"samples_per_prompt_default": 4,
"samples_per_prompt_data_multiplier": 32,
"max_rollout_tokens": 7168,
"auto_checkpoint_cadence_steps": 10,
"cost_cap_default_usd": 25,
"cold_start_overlap_threshold": 0.5,
"mixture_distillation_golden_fraction": 0.25,
"eval_gate_required": true,
"notifications_channels": [
"desktop_tray",
"email",
"webhook"
]
}
]
}
],
"TierDefaultsResponse": [
{
"tier": "prosumer",
"defaults": {
"tier": "prosumer",
"default_logit_source": "LocalTeacher",
"default_loss": "teacher_top_k (K=32)",
"default_top_k": 32,
"lora_rank": 32,
"batch_size": 16,
"samples_per_prompt_default": 4,
"samples_per_prompt_data_multiplier": 32,
"max_rollout_tokens": 7168,
"auto_checkpoint_cadence_steps": 10,
"cost_cap_default_usd": 25,
"cold_start_overlap_threshold": 0.5,
"mixture_distillation_golden_fraction": 0.25,
"eval_gate_required": true,
"notifications_channels": [
"desktop_tray",
"email",
"webhook"
]
}
}
],
"TrainingJobDetail": [
{
"job_id": "train-1",
"state": "completed",
"progress": 1,
"current_loss": 0.2,
"adapter_name": "math-v1",
"effective_seed": "42",
"started_at": "12s ago",
"elapsed_secs": 12,
"submitted_unix_ms": 1700000000000,
"finished_unix_ms": 1700000012000,
"job_type": "sft",
"epoch": 3,
"adapter_path": "/srv/adapters/math-v1",
"auto_load": true,
"linked_eval_job_ids": [],
"loss_history": [
{
"epoch": 1,
"progress": 0.5,
"loss": 0.4,
"elapsed_secs": 5
}
],
"train_receipt": null,
"replay_request": null,
"latest_checkpoint": null,
"checkpoint_error": null,
"metadata_error": null
}
],
"TrainingResponse": [
{
"job_id": "train-1",
"state": "queued",
"effective_seed": "42",
"message": "Queued training job"
}
],
"TrainingStatus": [
{
"job_id": "train-1",
"state": "completed",
"progress": 1,
"current_loss": 0.2,
"adapter_name": "math-v1",
"effective_seed": "42",
"started_at": "12s ago",
"elapsed_secs": 12,
"submitted_unix_ms": 1700000000000,
"finished_unix_ms": 1700000012000,
"job_type": "sft"
}
],
"Vec_TrainingStatus": [
[
{
"job_id": "train-1",
"state": "completed",
"progress": 1,
"current_loss": 0.2,
"adapter_name": "math-v1",
"effective_seed": "42",
"started_at": "12s ago",
"elapsed_secs": 12,
"submitted_unix_ms": 1700000000000,
"finished_unix_ms": 1700000012000,
"job_type": "sft"
}
]
]
},
"x-kiln-external-contracts": [
"kiln-evals-v1.schema.json",
"kiln-inference-v1.schema.json"
],
"x-kiln-field-schema-status": "complete"
}
Definitions
AdvantageModeMethod used to normalize rewards within each rollout group.0 fields
Type: string. Constraints: enum "vanilla", "dr_grpo".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::AdvantageMode"
}
AgentRunAbortResponseAcknowledgment that a cooperative abort was requested.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
aborting |
yes | any |
const true | Aborting. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunAbortResponse"
}
AgentRunEventOne ordered event emitted by `pi`.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
seq |
yes | NonNegativeInteger |
- | Seq. A whole number greater than or equal to zero. |
event |
yes | AnyJson |
- | Event. Any valid JSON value. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunEvent"
}
AgentRunEventsResponseIncremental event page with sequence information that lets clients detect truncated history.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
events |
yes | array<AgentRunEvent> |
- | Events. |
next_after |
yes | NonNegativeInteger |
- | Next after. A whole number greater than or equal to zero. |
status |
yes | RunStatus |
- | Status. Lifecycle state for an embedded agent run. |
first_available_seq |
yes | NonNegativeInteger | null |
- | First available seq. |
truncated |
yes | Boolean |
- | Truncated. Either true or false. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunEventsResponse"
}
AgentRunListResponseEmbedded agent runs Kiln currently retains.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
runs |
yes | array<AgentRunRecord> |
- | Runs. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunListResponse"
}
AgentRunQueuedResponseAcknowledgment that a steering or follow-up message was queued for delivery.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
queued |
yes | any |
const true | Queued. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunQueuedResponse"
}
AgentRunRecordStored metadata and outcome for one embedded agent run.16 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
id |
yes | NonEmptyString |
- | ID. A text string containing at least one character. |
task |
yes | String |
- | Task. A text string. |
cwd |
yes | String |
- | Cwd. A text string. |
label |
no | String |
- | Label. A text string. |
status |
yes | RunStatus |
- | Status. Lifecycle state for an embedded agent run. |
created_unix_ms |
yes | NonNegativeInteger |
- | Created unix ms. A whole number greater than or equal to zero. |
queue_seq |
yes | NonNegativeInteger |
- | Queue seq. A whole number greater than or equal to zero. |
started_unix_ms |
no | NonNegativeInteger |
- | Started unix ms. A whole number greater than or equal to zero. |
finished_unix_ms |
no | NonNegativeInteger |
- | Finished unix ms. A whole number greater than or equal to zero. |
num_turns |
yes | NonNegativeInteger |
- | Num turns. A whole number greater than or equal to zero. |
num_tool_calls |
yes | NonNegativeInteger |
- | Num tool calls. A whole number greater than or equal to zero. |
session_id |
no | String |
- | Session ID. A text string. |
session_path |
no | String |
- | Session path. A text string. |
trace_indexed |
yes | Boolean |
- | Trace indexed. Either true or false. |
last_assistant_text |
no | String |
- | Last assistant text. A text string. |
error |
no | String |
- | Error. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunRecord"
}
AgentRunsStatusResponseWhether embedded runs are enabled, whether the local `pi` executable is available, and current concurrency.7 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
enabled |
yes | Boolean |
- | Enabled. Either true or false. |
disabled_reason |
yes | String | null |
- | Disabled reason. |
pi_available |
yes | Boolean |
- | Pi available. Either true or false. |
pi_path |
yes | String | null |
- | Pi path. |
max_concurrent_runs |
yes | PositiveInteger |
- | Max concurrent runs. A whole number greater than or equal to one. |
active_runs |
yes | NonNegativeInteger |
- | Active runs. A whole number greater than or equal to zero. |
sessions_dir |
yes | String |
- | Sessions dir. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentRunsStatusResponse"
}
AgentTraceIndexed `pi` session and its normalized training trajectory.12 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
id |
yes | NonEmptyString |
- | ID. A text string containing at least one character. |
working_dir |
yes | String |
- | Working dir. A text string. |
num_turns |
yes | NonNegativeInteger |
- | Num turns. A whole number greater than or equal to zero. |
num_tool_calls |
yes | NonNegativeInteger |
- | Num tool calls. A whole number greater than or equal to zero. |
outcome |
yes | TraceOutcome |
- | Outcome. Outcome signals inferred from a pi session. These values are best-effort observations, not verified success criteria. |
first_event_at |
yes | Rfc3339Timestamp | null |
- | First event at. |
last_event_at |
yes | Rfc3339Timestamp | null |
- | Last event at. |
forked |
yes | Boolean |
- | Forked. Either true or false. |
parent_id |
yes | String | null |
- | Parent ID. |
tool_manifest_sha |
yes | String | null |
- | Tool manifest sha. |
prompt_messages |
no | array<TrainingChatMessageOutput> |
- | Prompt messages. |
trajectory |
no | array<TurnSegmentOutput> |
- | Trajectory. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentTrace"
}
AgentTracesListResponseAll agent traces currently indexed by Kiln.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
traces |
yes | array<AgentTrace> |
- | Traces. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "AgentTracesListResponse"
}
AgenticGroupOne prompt and its scored rollouts. `rollouts` is an input alias for `completions`; send exactly one of them.3 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
messages |
yes | array<TrainingChatMessageInput> |
- | Messages. |
completions |
no | array<ScoredRollout> |
- | Completions. |
rollouts |
no | array<ScoredRollout> |
- | Rollouts. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"required": [
"completions"
],
"not": {
"required": [
"rollouts"
]
}
},
{
"required": [
"rollouts"
],
"not": {
"required": [
"completions"
]
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::AgenticGroup",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
AnyJsonAny valid JSON value.0 fields
Type: any.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "serde_json::Value"
}
BehaviorPolicyWhether training uses no importance correction or the probabilities recorded during rollout generation.0 fields
Type: string. Constraints: enum "no_importance_correction", "recorded".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::BehaviorPolicy"
}
BooleanEither true or false.0 fields
Type: boolean.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "bool"
}
CancelTrainingJobResponseCancellation result. Queued jobs stop immediately; running jobs stop cooperatively at the next training-step boundary and later appear as failed with a cancellation error.0 fields
Type: object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"status",
"job_id",
"message"
],
"properties": {
"status": {
"const": "cancelling"
},
"job_id": {
"$ref": "#/$defs/NonEmptyString"
},
"message": {
"const": "stop requested — the trainer aborts at the next step boundary"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"status",
"job_id"
],
"properties": {
"status": {
"const": "cancelled"
},
"job_id": {
"$ref": "#/$defs/NonEmptyString"
}
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CancelTrainingJobResponse"
}
CapacityRequestInputs to the preflight capacity model. `num_layers` and `hidden_size` default to Qwen3.5-4B values when omitted, so send both for any other model.7 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
rollouts |
yes | PositiveInteger |
- | Rollouts. A whole number greater than or equal to one. |
tokens_per_rollout |
yes | PositiveInteger |
- | Tokens per rollout. A whole number greater than or equal to one. |
top_k |
yes | PositiveInteger |
- | Top k. A whole number greater than or equal to one. |
rank |
yes | PositiveInteger |
- | Rank. A whole number greater than or equal to one. |
num_layers |
no | PositiveInteger |
- | Num layers. A whole number greater than or equal to one. |
hidden_size |
no | PositiveInteger |
- | Hidden size. A whole number greater than or equal to one. |
initial_overlap_probe |
no | UnitInterval | null |
- | Initial overlap probe. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CapacityRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
CapacityResponseModeled capacity estimate and any preflight warnings. This is not a measured performance result.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
bits_needed |
yes | FiniteNumber |
- | Bits needed. A finite JSON number. |
bits_storable_in_lora |
yes | FiniteNumber |
- | Bits storable in LoRA. A finite JSON number. |
capacity_ratio |
yes | FiniteNumber |
- | Capacity ratio. A finite JSON number. |
expected_overlap_at_step_50 |
yes | UnitInterval |
- | Expected overlap at step 50. A number from 0 through 1, inclusive. |
warnings |
yes | array<String> |
- | Warnings. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CapacityResponse"
}
ClearCorrectionsResponseNumber of active corrections removed. Previously trained history remains.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
status |
yes | any |
const "cleared" | Status. |
removed |
yes | NonNegativeInteger |
- | Removed. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "ClearCorrectionsResponse"
}
CompatibilityResponseFiltered rows from Kiln's small, model-specific built-in estimate table.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
matches |
yes | array<CompatibilityRow> |
- | Matches. |
note |
yes | String | null |
- | Note. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CompatibilityResponse"
}
CompatibilityRowOne built-in teacher, student, and domain estimate. Values are modeled planning inputs, not benchmark measurements or compatibility guarantees.10 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
teacher |
yes | String |
- | Teacher. A text string. |
student |
yes | String |
- | Student. A text string. |
domain |
yes | String |
- | Domain. A text string. |
predicted_initial_overlap |
yes | UnitInterval |
- | Predicted initial overlap. A number from 0 through 1, inclusive. |
recommended_rank |
yes | PositiveInteger |
- | Recommended rank. A whole number greater than or equal to one. |
cold_start_epochs |
yes | PositiveInteger | null |
- | Cold start epochs. |
expected_gpu_hours |
yes | FiniteNumber |
- | Expected GPU hours. A finite JSON number. |
expected_cost_usd |
yes | FiniteNumber | null |
- | Expected cost usd. |
validation_eval |
yes | String |
- | Validation eval. A text string. |
expected_eval_delta_points |
yes | FiniteNumber |
- | Expected eval delta points. A finite JSON number. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CompatibilityRow"
}
CorrectionRowOne stored correction returned by Kiln.10 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
request_id |
yes | NonEmptyString |
- | Request ID. A text string containing at least one character. |
agent |
yes | String |
- | Agent. A text string. |
adapter |
yes | String | null |
- | Adapter. |
user |
yes | NonEmptyString |
- | User. A text string containing at least one character. |
original |
yes | String |
- | Original. A text string. |
ideal |
yes | String |
- | Ideal. A text string. |
truncated |
yes | Boolean |
- | Truncated. Either true or false. |
created_at |
yes | String |
- | Created at. A text string. |
trained_into |
no | String |
- | Trained into. A text string. |
trained_at |
no | Rfc3339Timestamp |
- | Trained at. An RFC 3339 timestamp. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CorrectionRow"
}
CorrectionRowInputCreate or update one correction. Kiln can supply timestamps and training markers when they are omitted.10 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
request_id |
yes | NonEmptyString |
- | Request ID. A text string containing at least one character. |
agent |
no | String |
- | Agent. A text string. |
adapter |
no | String | null |
- | Adapter. |
user |
yes | NonEmptyString |
- | User. A text string containing at least one character. |
original |
no | String |
- | Original. A text string. |
ideal |
no | String |
- | Ideal. A text string. |
truncated |
no | Boolean |
- | Truncated. Either true or false. |
created_at |
no | String |
- | Created at. A text string. |
trained_into |
no | String | null |
- | Trained into. |
trained_at |
no | Rfc3339Timestamp | null |
- | Trained at. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CorrectionRow",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
CreateRunRequestRequest to queue one embedded agent run.6 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
task |
yes | NonEmptyString |
- | Task. A text string containing at least one character. |
cwd |
no | String | null |
- | Cwd. |
label |
no | String | null |
- | Label. |
tools |
no | array<String> | null |
- | Tools. |
thinking_level |
no | any | null |
- | Thinking level. |
timeout_secs |
no | integer | null |
- | Timeout secs. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "CreateRunRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DecimalU64An unsigned 64-bit integer encoded as decimal text to preserve exact values.0 fields
Type: string. Constraints: pattern ^(0|[1-9][0-9]*)$.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "u64"
}
DeleteCorrectionResponseConfirmation that one correction was deleted.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
status |
yes | any |
const "deleted" | Status. |
request_id |
yes | NonEmptyString |
- | Request ID. A text string containing at least one character. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DeleteCorrectionResponse"
}
DeleteTrainingJobResponseResult of permanently deleting a terminal job from memory and, when present, its archive file. Active jobs must be cancelled first.3 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
status |
yes | any |
const "deleted" | Status. |
removed_archive_file |
yes | Boolean |
- | Removed archive file. Either true or false. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DeleteTrainingJobResponse"
}
DiscoverRequestOptional `pi` sessions directory on the Kiln server.1 field
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
path |
no | String | null |
- | Path. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DiscoverRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DiscoverResponseNumber of traces indexed and the server-local directory scanned.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
indexed |
yes | NonNegativeInteger |
- | Indexed. A whole number greater than or equal to zero. |
path |
yes | String |
- | Path. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DiscoverResponse"
}
DistillMergeRequestRequest to distill behavior from one or more source adapters into a new adapter.6 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
sources |
yes | array<DistillMergeSource> |
minimum items 1 | Sources. |
student |
no | String |
- | Student. A text string. |
rollout_budget |
no | PositiveInteger |
- | Rollout budget. A whole number greater than or equal to one. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DistillMergeRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillMergeSourceOne source adapter and its optional merge weight.2 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
adapter |
yes | NonEmptyString |
- | Adapter. A text string containing at least one character. |
weight |
no | FiniteNumber |
- | Weight. A finite JSON number. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::DistillMergeSource",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillPumpModeChoose a named domain, inline examples, or the built-in wide-corpus mode for knowledge pumping.0 fields
Type: object | object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"domain"
],
"properties": {
"domain": {
"$ref": "#/$defs/NonEmptyString"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"examples"
],
"properties": {
"examples": {
"type": "array",
"items": {
"$ref": "#/$defs/OpdPrompt"
},
"minItems": 1
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"wide"
],
"properties": {
"wide": {
"$ref": "#/$defs/Boolean"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::DistillPumpMode"
}
DistillPumpRequestKnowledge-pump request with a registered teacher alias and a rollout budget.8 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
teacher |
yes | NonEmptyString |
- | Teacher. A text string containing at least one character. |
mode |
yes | DistillPumpMode |
- | Mode. Choose a named domain, inline examples, or the built-in wide-corpus mode for knowledge pumping. |
rank |
no | PositiveInteger | null |
- | Rank. |
rollout_budget |
no | PositiveInteger |
- | Rollout budget. A whole number greater than or equal to one. |
use_cache |
no | Boolean |
- | Use cache. Either true or false. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DistillPumpRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillRefreshRequestTwo-phase request for learning new material and recovering instruction-following behavior. Automatic loading supports at most one gate across `post_eval`, `if_eval_suite`, and `new_knowledge_eval_suite`; disable `config.auto_load` for independent multi-suite diagnostics.10 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
new_data |
yes | NewKnowledgeSource |
- | New data. Either a registered dataset name or inline prompts for a refresh workflow. |
behavioural_teacher |
yes | NonEmptyString |
- | Behavioural teacher. A text string containing at least one character. |
background_chat |
no | String |
- | Background chat. A text string. |
require_if_eval_recovery |
no | FiniteNumber |
- | Require if eval recovery. A finite JSON number. |
require_internal_qa_gain |
no | FiniteNumber |
- | Require internal qa gain. A finite JSON number. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
if_eval_suite |
no | String | null |
- | If eval suite. |
new_knowledge_eval_suite |
no | String | null |
- | New knowledge eval suite. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DistillRefreshRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
DistillSelfRequestSelf-distillation request that uses information available only during training.7 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
mode |
yes | SelfDistillMode |
- | Mode. Self-distillation strategy for using information available only during training. |
prompts |
no | array<OpdPrompt> | null |
- | Prompts. |
ground_truth |
no | array<String> | null |
- | Ground truth. |
documents |
no | array<String> | null |
- | Documents. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "DistillSelfRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
EchoConfigSettings for ECHO's observation-token auxiliary objective.3 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
lambda |
no | FiniteNumber |
- | Lambda. A finite JSON number. |
env_mask_mode |
no | EnvMaskMode |
- | Env mask mode. Which observation tokens contribute to the ECHO auxiliary objective. |
warning_filter |
no | Boolean |
- | Warning filter. Either true or false. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::EchoConfig",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
EnvMaskModeWhich observation tokens contribute to the ECHO auxiliary objective.0 fields
Type: string. Constraints: enum "env_only", "full_obs".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::EnvMaskMode"
}
ExamplesSourceEither a registered dataset name or inline examples for an SFT recipe step.0 fields
Type: object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"examples"
],
"properties": {
"examples": {
"type": "array",
"items": {
"$ref": "#/$defs/SftExample"
},
"minItems": 1
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "ExamplesSource"
}
FiniteNumberA finite JSON number.0 fields
Type: number.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "f32 | f64"
}
FrontDoorRequestTagged request accepted by the shared `/v1/train` endpoint for all supported training workflows.0 fields
Type: object | object | object | object | object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"new_data",
"behavioural_teacher"
],
"properties": {
"kind": {
"const": "distill_refresh"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"new_data": {
"$ref": "#/$defs/NewKnowledgeSource"
},
"behavioural_teacher": {
"$ref": "#/$defs/NonEmptyString"
},
"background_chat": {
"$ref": "#/$defs/String"
},
"require_if_eval_recovery": {
"$ref": "#/$defs/FiniteNumber"
},
"require_internal_qa_gain": {
"$ref": "#/$defs/FiniteNumber"
},
"config": {
"$ref": "#/$defs/OpdConfig"
},
"post_eval": {
"anyOf": [
{
"$ref": "#/$defs/PostEvalConfig"
},
{
"type": "null"
}
]
},
"if_eval_suite": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"new_knowledge_eval_suite": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"sources"
],
"properties": {
"kind": {
"const": "distill_merge"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"sources": {
"type": "array",
"items": {
"$ref": "#/$defs/DistillMergeSource"
},
"minItems": 1
},
"student": {
"$ref": "#/$defs/String"
},
"rollout_budget": {
"$ref": "#/$defs/PositiveInteger"
},
"config": {
"$ref": "#/$defs/OpdConfig"
},
"post_eval": {
"anyOf": [
{
"$ref": "#/$defs/PostEvalConfig"
},
{
"type": "null"
}
]
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"teacher",
"mode"
],
"properties": {
"kind": {
"const": "distill_pump"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"teacher": {
"$ref": "#/$defs/NonEmptyString"
},
"mode": {
"$ref": "#/$defs/DistillPumpMode"
},
"rank": {
"anyOf": [
{
"$ref": "#/$defs/PositiveInteger"
},
{
"type": "null"
}
]
},
"rollout_budget": {
"$ref": "#/$defs/PositiveInteger"
},
"use_cache": {
"$ref": "#/$defs/Boolean"
},
"config": {
"$ref": "#/$defs/OpdConfig"
},
"post_eval": {
"anyOf": [
{
"$ref": "#/$defs/PostEvalConfig"
},
{
"type": "null"
}
]
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"teacher"
],
"properties": {
"kind": {
"const": "opd"
},
"prompts": {
"type": "array",
"items": {
"$ref": "#/$defs/OpdPrompt"
},
"minItems": 1
},
"dataset_path": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"teacher": {
"$ref": "#/$defs/NonEmptyString"
},
"config": {
"$ref": "#/$defs/OpdConfig"
},
"post_eval": {
"anyOf": [
{
"$ref": "#/$defs/PostEvalConfig"
},
{
"type": "null"
}
]
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored",
"oneOf": [
{
"required": [
"prompts"
],
"not": {
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
}
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"required": [
"prompts"
]
}
}
]
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "grpo"
},
"groups": {
"type": "array",
"items": {
"$ref": "#/$defs/AgenticGroup"
},
"minItems": 1
},
"agentic_groups": {
"type": "array",
"items": {
"$ref": "#/$defs/AgenticGroup"
},
"minItems": 1
},
"dataset_path": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"dataset": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"dataset_split": {
"$ref": "kiln-evals-v1.schema.json#/$defs/DatasetSplit"
},
"config": {
"$ref": "#/$defs/GrpoConfig"
},
"post_eval": {
"anyOf": [
{
"$ref": "#/$defs/PostEvalConfig"
},
{
"type": "null"
}
]
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored",
"oneOf": [
{
"required": [
"groups"
],
"not": {
"anyOf": [
{
"required": [
"agentic_groups"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"agentic_groups"
],
"not": {
"anyOf": [
{
"required": [
"groups"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"groups"
]
},
{
"required": [
"agentic_groups"
]
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"groups"
]
},
{
"required": [
"agentic_groups"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
}
]
}
}
]
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "sft"
},
"examples": {
"type": "array",
"items": {
"$ref": "#/$defs/SftExample"
},
"minItems": 1
},
"dataset_path": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"dataset": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"dataset_split": {
"$ref": "kiln-evals-v1.schema.json#/$defs/DatasetSplit"
},
"config": {
"$ref": "#/$defs/SftConfig"
},
"post_eval": {
"anyOf": [
{
"$ref": "#/$defs/PostEvalConfig"
},
{
"type": "null"
}
]
}
},
"oneOf": [
{
"required": [
"examples"
],
"not": {
"anyOf": [
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"examples"
]
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"examples"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
}
]
}
}
]
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "FrontDoorRequest"
}
FrontDoorResponseTraining workflow selected by Kiln and the resulting queue receipt.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
picked |
yes | any |
enum "distill_refresh", "distill_merge", "distill_pump", "opd", "grpo", "sft" | Picked. |
training |
yes | TrainingResponse |
- | Training. Receipt returned after Kiln validates and queues a training request. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "FrontDoorResponse"
}
GrpoConfigComplete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration.37 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
learning_rate |
no | FiniteNumber | null |
- | Learning rate. |
kl_coeff |
no | FiniteNumber |
- | Kl coeff. A finite JSON number. |
clip_epsilon |
no | FiniteNumber |
- | Clip epsilon. A finite JSON number. |
clip_eps_high |
no | FiniteNumber | null |
- | Clip eps high. |
cispo_max_weight |
no | FiniteNumber |
- | Cispo max weight. A finite JSON number. |
advantage_mode |
no | AdvantageMode |
- | Advantage mode. Method used to normalize rewards within each rollout group. |
loss_aggregation |
no | LossAggregation |
- | Loss aggregation. Whether Kiln aggregates the GRPO objective by completion or by token. |
kl_estimator |
no | KlEstimator |
- | Kl estimator. Estimator used for the per-token KL penalty. |
dynamic_sampling |
no | Boolean |
- | Dynamic sampling. Either true or false. |
is_level |
no | IsLevel |
- | Is level. Granularity used for importance-sampling correction. |
behavior_policy |
no | BehaviorPolicy |
- | Behavior policy. Whether training uses no importance correction or the probabilities recorded during rollout generation. |
kl_reference_policy |
no | KlReferencePolicy |
- | Kl reference policy. Reference-policy strategy used only to calculate the KL penalty. |
reference_policy |
no | KlReferencePolicy |
- | Reference policy. Reference-policy strategy used only to calculate the KL penalty. |
entropy_aware_kl_quantile |
no | UnitInterval | null |
- | Entropy aware kl quantile. |
reward_saturation_threshold |
no | FiniteNumber |
- | Reward saturation threshold. A finite JSON number. |
reward_low_variance_threshold |
no | FiniteNumber |
- | Reward low variance threshold. A finite JSON number. |
reward_filter_var_min |
no | FiniteNumber | null |
- | Reward filter var min. |
reward_filter_var_max |
no | FiniteNumber | null |
- | Reward filter var max. |
reward_filter_min_groups |
no | PositiveInteger |
- | Reward filter min groups. A whole number greater than or equal to one. |
reward_filter_on_empty |
no | RewardFilterOnEmpty |
- | Reward filter on empty. What to do when reward-variance filtering retains too few groups. |
lora_rank |
no | PositiveInteger |
- | LoRA rank. A whole number greater than or equal to one. |
lora_alpha |
no | FiniteNumber |
- | LoRA alpha. A finite JSON number. |
base_adapter |
no | String | null |
- | Base adapter. |
allow_adapter_shape_conversion |
no | Boolean |
- | Allow adapter shape conversion. Either true or false. |
allow_high_lora_scale |
no | Boolean |
- | Allow high LoRA scale. Either true or false. |
output_name |
no | String | null |
- | Output name. |
auto_load |
no | Boolean |
- | Auto load. Either true or false. |
checkpoint_interval |
no | PositiveInteger | null |
- | Checkpoint interval. |
resume_checkpoint |
no | String | null |
- | Resume checkpoint. |
grad_checkpoint_segments |
no | PositiveInteger | null |
- | Grad checkpoint segments. |
detect_anomaly |
no | Boolean |
- | Detect anomaly. Either true or false. |
seed |
no | NonNegativeInteger | null |
- | Seed. |
optimizer |
no | Optimizer |
- | Optimizer. Optimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected. |
adapter_smoke_test |
no | Boolean |
- | Adapter smoke test. Either true or false. |
adapter_smoke_prompts |
no | array<NonEmptyString> | null |
- | Adapter smoke prompts. |
shared_prefix_reference |
no | Boolean |
- | Shared prefix reference. Either true or false. |
loss |
no | LossConfig |
- | Loss. GRPO objective settings. ECHO is supported; loss.opd is reserved and currently rejects the request. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-input-aliases": {
"reference_policy": "kl_reference_policy"
},
"x-kiln-rust-type": "kiln_train::GrpoConfig",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
GrpoRequestGRPO submission using exactly one inline, local-path, or registered-dataset source.7 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
groups |
no | array<AgenticGroup> |
minimum items 1 | Groups. |
agentic_groups |
no | array<AgenticGroup> |
minimum items 1 | Agentic groups. |
dataset_path |
no | String | null |
- | Dataset path. |
dataset |
no | String | null |
- | Dataset. |
dataset_split |
no | DatasetSplit |
- | Dataset split. See kiln-evals-v1.schema.json#/$defs/DatasetSplit. |
config |
no | GrpoConfig |
- | Config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"allOf": [
{
"if": {
"required": [
"dataset_split"
]
},
"then": {
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
}
}
}
],
"oneOf": [
{
"required": [
"groups"
],
"not": {
"anyOf": [
{
"required": [
"agentic_groups"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"agentic_groups"
],
"not": {
"anyOf": [
{
"required": [
"groups"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"groups"
]
},
{
"required": [
"agentic_groups"
]
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"groups"
]
},
{
"required": [
"agentic_groups"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
}
]
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-input-aliases": {
"agentic_groups": "groups"
},
"x-kiln-rust-type": "GrpoRequest",
"x-kiln-semantic-constraints": [
"recorded behavior policy requires provenance on every rollout",
"dataset_split requires a registered named dataset and defaults to train"
],
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
IsLevelGranularity used for importance-sampling correction.0 fields
Type: string. Constraints: enum "token", "sequence", "cispo".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::IsLevel"
}
JudgeDistillRequestRequest to distill a local judge from indexed agent traces.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
no | NonEmptyString |
- | Name. A text string containing at least one character. |
teacher |
no | NonEmptyString |
- | Teacher. A text string containing at least one character. |
include_pi_share |
no | Boolean |
- | Include pi share. Either true or false. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "JudgeDistillRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
JudgeDistillResponseQueue receipt for a judge-distillation request.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
state |
yes | any |
const "queued" | State. |
effective_seed |
yes | DecimalU64 |
- | Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values. |
message |
yes | String |
- | Message. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "JudgeDistillResponse"
}
JudgeDriftCheckRequestInputs accepted by the judge-drift route. After validation, the endpoint currently returns HTTP 501 and performs no drift check.4 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
judge |
no | NonEmptyString |
- | Judge. A text string containing at least one character. |
teacher |
no | NonEmptyString |
- | Teacher. A text string containing at least one character. |
sample_size |
no | PositiveInteger |
- | Sample size. A whole number greater than or equal to one. |
agreement_threshold |
no | number |
exclusive minimum 0; maximum 1 | Agreement threshold. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-current-runtime-result": "http_501_not_implemented",
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "JudgeDriftCheckRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
KlEstimatorEstimator used for the per-token KL penalty.0 fields
Type: string. Constraints: enum "k1", "k3", "none".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::KlEstimator"
}
KlReferencePolicyReference-policy strategy used only to calculate the KL penalty.0 fields
Type: object | object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "base_per_step"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "none"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "ema"
},
"decay": {
"$ref": "#/$defs/FiniteNumber"
},
"refresh_every": {
"$ref": "#/$defs/PositiveInteger"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::KlReferencePolicy"
}
LibraryAdapterEntryOne adapter entry in the configured library catalog.7 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
id |
yes | NonEmptyString |
- | ID. A text string containing at least one character. |
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
source_kind |
yes | String |
- | Source kind. A text string. |
description |
yes | String | null |
- | Description. |
post_eval |
yes | object |
- | Post eval. |
uploader |
yes | String | null |
- | Uploader. |
size_bytes |
yes | NonNegativeInteger | null |
- | Size bytes. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "LibraryAdapterEntry"
}
LibraryListResponseConfigured library URL and catalog response. The current endpoint returns an empty list because remote catalog access is not operational.3 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
backend |
yes | String |
- | Backend. A text string. |
adapters |
yes | array<LibraryAdapterEntry> |
- | Adapters. |
note |
yes | String | null |
- | Note. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "LibraryListResponse"
}
ListResponseCorrections from the active set or training history.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
corrections |
yes | array<CorrectionRow> |
- | Corrections. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "ListResponse"
}
LossAggregationWhether Kiln aggregates the GRPO objective by completion or by token.0 fields
Type: string. Constraints: enum "per_sample", "token_level".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::LossAggregation"
}
LossConfigGRPO objective settings. ECHO is supported; `loss.opd` is reserved and currently rejects the request.3 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
echo |
no | EchoConfig | null |
- | Echo. |
opd |
no | OpdAuxConfig | null |
- | OPD. |
no_policy_loss |
no | Boolean |
- | No policy loss. Either true or false. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::LossConfig",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
MarkTrainedRequestMark selected corrections as used to train a named adapter.2 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
request_ids |
yes | array<NonEmptyString> |
minimum items 1 | Request IDs. |
adapter |
yes | NonEmptyString |
- | Adapter. A text string containing at least one character. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "MarkTrainedRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
MarkTrainedResponseNumber of corrections marked as trained.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
status |
yes | any |
const "marked" | Status. |
marked |
yes | NonNegativeInteger |
- | Marked. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "MarkTrainedResponse"
}
MessageRequestSteering or follow-up message for an active run.1 field
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
message |
yes | NonEmptyString |
- | Message. A text string containing at least one character. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "MessageRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
NewKnowledgeSourceEither a registered dataset name or inline prompts for a refresh workflow.0 fields
Type: object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"examples"
],
"properties": {
"examples": {
"type": "array",
"items": {
"$ref": "#/$defs/OpdPrompt"
},
"minItems": 1
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::NewKnowledgeSource"
}
NonEmptyStringA text string containing at least one character.0 fields
Type: string. Constraints: minimum length 1.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "String"
}
NonNegativeIntegerA whole number greater than or equal to zero.0 fields
Type: integer. Constraints: minimum 0.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "u64 | u32 | usize"
}
OpdAuxConfigReserved GRPO auxiliary-objective shape. Supplying `loss.opd` currently rejects the request; use `/v1/train/opd` instead.1 field
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
lambda |
no | FiniteNumber |
- | Lambda. A finite JSON number. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdAuxConfig",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdConfigOPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts.29 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
training_mode |
no | OpdTrainingMode |
- | Training mode. Whether OPD generates fresh student rollouts or replays teacher-authored data. |
objective |
no | OpdObjective |
- | Objective. OPD objective. cross_entropy is parsed for compatibility but rejected by the server. |
loss |
no | OpdLossGranularity |
- | Loss. Amount of teacher-distribution data used by OPD. The server currently executes only teacher_top_k. |
top_k |
no | PositiveInteger |
- | Top k. A whole number greater than or equal to one. |
samples_per_prompt |
no | PositiveInteger |
- | Samples per prompt. A whole number greater than or equal to one. |
temperature |
no | FiniteNumber |
- | Temperature. A finite JSON number. |
top_p |
no | FiniteNumber |
- | Top p. A finite JSON number. |
max_tokens |
no | PositiveInteger |
- | Max tokens. A whole number greater than or equal to one. |
sampler_segments |
no | PositiveInteger | null |
- | Sampler segments. |
rollout_prompt_rendering |
no | OpdRolloutPromptRendering |
- | Rollout prompt rendering. How Kiln constructs the student rollout prefix. chat_template is experimental. |
stable_opd |
no | StableOpdMode |
- | Stable OPD. Stable-OPD setting. Only off is currently executable. |
discount |
no | FiniteNumber |
- | Discount. A finite JSON number. |
clip_epsilon |
no | FiniteNumber |
- | Clip epsilon. A finite JSON number. |
learning_rate |
no | FiniteNumber | null |
- | Learning rate. |
lora_rank |
no | PositiveInteger |
- | LoRA rank. A whole number greater than or equal to one. |
lora_alpha |
no | FiniteNumber |
- | LoRA alpha. A finite JSON number. |
allow_high_lora_scale |
no | Boolean |
- | Allow high LoRA scale. Either true or false. |
base_adapter |
no | String | null |
- | Base adapter. |
output_name |
no | String | null |
- | Output name. |
auto_load |
no | Boolean |
- | Auto load. Either true or false. |
checkpoint_interval |
no | PositiveInteger | null |
- | Checkpoint interval. |
resume_checkpoint |
no | String | null |
- | Resume checkpoint. |
grad_checkpoint_segments |
no | PositiveInteger |
- | Grad checkpoint segments. A whole number greater than or equal to one. |
detect_anomaly |
no | Boolean |
- | Detect anomaly. Either true or false. |
seed |
no | NonNegativeInteger | null |
- | Seed. |
optimizer |
no | Optimizer |
- | Optimizer. Optimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected. |
echo |
no | EchoConfig | null |
- | Echo. |
epochs |
no | PositiveInteger |
- | Epochs. A whole number greater than or equal to one. |
max_cost_usd |
no | FiniteNumber | null |
- | Max cost usd. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdConfig",
"x-kiln-semantic-constraints": [
"server loss is teacher_top_k",
"stable_opd.mode is off",
"discount and clip_epsilon are zero",
"max_cost_usd is null"
],
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdLossGranularityAmount of teacher-distribution data used by OPD. The server currently executes only `teacher_top_k`.0 fields
Type: string. Constraints: enum "sampled_token", "teacher_top_k", "full_vocab".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdLossGranularity"
}
OpdObjectiveOPD objective. `cross_entropy` is parsed for compatibility but rejected by the server.0 fields
Type: string. Constraints: enum "reverse_kl", "cross_entropy".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdObjective"
}
OpdPromptStudent-visible prompt with optional teacher-only context and an optional agent trajectory to replay.3 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
messages |
yes | array<TrainingChatMessageInput> |
- | Messages. |
teacher_extra_messages |
no | array<TrainingChatMessageInput> |
- | Teacher extra messages. |
trajectory |
no | array<TurnSegmentInput> |
- | Trajectory. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdPrompt",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdRequestDirect OPD submission using either inline prompts or a replay dataset path on the server.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
prompts |
no | array<OpdPrompt> |
minimum items 1 | Prompts. |
dataset_path |
no | String | null |
- | Dataset path. |
teacher |
yes | NonEmptyString |
- | Teacher. A text string containing at least one character. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"required": [
"prompts"
],
"not": {
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
}
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"required": [
"prompts"
]
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpdRequest",
"x-kiln-semantic-constraints": [
"teacher alias is registered"
],
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
OpdRolloutPromptRenderingHow Kiln constructs the student rollout prefix. `chat_template` is experimental.0 fields
Type: string. Constraints: enum "legacy_action_boundary", "chat_template".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdRolloutPromptRendering"
}
OpdTrainingModeWhether OPD generates fresh student rollouts or replays teacher-authored data.0 fields
Type: string. Constraints: enum "on_policy", "off_policy".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpdTrainingMode"
}
OpenEnvArtifactContent-addressed artifact downloadable from a retained OpenEnv run.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
kind |
yes | any |
enum "dataset", "replay", "summary", "train_receipt", "adapter_manifest", "environment_eval_baseline_dataset", "environment_eval_baseline_replay", "environment_eval_baseline_summary", "environment_eval_candidate_dataset", "environment_eval_candidate_replay", "environment_eval_candidate_summary", "environment_eval_receipt" | Kind. |
url |
yes | String |
- | URL. A text string. |
sha256 |
yes | Sha256 |
- | SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
bytes |
yes | NonNegativeInteger |
- | Bytes. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvArtifact"
}
OpenEnvEnvironmentEvalConfigPaired held-out OpenEnv evaluation collected after native training. Omitted seed_start begins immediately after the training seed range.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
groups |
no | PositiveInteger |
- | Groups. A whole number greater than or equal to one. |
group_size |
no | PositiveInteger |
- | Group size. A whole number greater than or equal to one. |
seed_start |
no | NonNegativeInteger |
- | Seed start. A whole number greater than or equal to zero. |
gate |
no | OpenEnvEnvironmentEvalGate |
- | Gate. Fail-closed paired-return promotion thresholds. Statistical significance is always required in addition to these point estimates. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalConfig"
}
OpenEnvEnvironmentEvalDecisionFixed paired-return policy decision before adapter promotion is applied.0 fields
Type: string. Constraints: enum "diagnostic", "passed", "rejected", "inconclusive".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalDecision"
}
OpenEnvEnvironmentEvalEvidenceEnvironment-owned returns and an exact two-sided sign test over independent per-seed mean-return pairs.14 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
policy_version |
yes | NonEmptyString |
- | Policy version. A text string containing at least one character. |
paired_groups |
yes | PositiveInteger |
- | Paired groups. A whole number greater than or equal to one. |
paired_episodes |
yes | PositiveInteger |
- | Paired episodes. A whole number greater than or equal to one. |
minimum_paired_groups |
yes | PositiveInteger |
- | Minimum paired groups. A whole number greater than or equal to one. |
baseline_mean_return |
yes | FiniteNumber |
- | Baseline mean return. A finite JSON number. |
candidate_mean_return |
yes | FiniteNumber |
- | Candidate mean return. A finite JSON number. |
mean_return_improvement |
yes | FiniteNumber |
- | Mean return improvement. A finite JSON number. |
improved_groups |
yes | NonNegativeInteger |
- | Improved groups. A whole number greater than or equal to zero. |
regressed_groups |
yes | NonNegativeInteger |
- | Regressed groups. A whole number greater than or equal to zero. |
tied_groups |
yes | NonNegativeInteger |
- | Tied groups. A whole number greater than or equal to zero. |
exact_sign_test_p_value |
yes | UnitInterval |
- | Exact sign test p value. A number from 0 through 1, inclusive. |
exact_sign_test_alpha |
yes | UnitInterval |
- | Exact sign test alpha. A number from 0 through 1, inclusive. |
decision |
yes | OpenEnvEnvironmentEvalDecision |
- | Decision. Fixed paired-return policy decision before adapter promotion is applied. |
reason |
yes | NonEmptyString |
- | Reason. A text string containing at least one character. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalEvidence"
}
OpenEnvEnvironmentEvalGateFail-closed paired-return promotion thresholds. Statistical significance is always required in addition to these point estimates.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
min_mean_return |
no | FiniteNumber |
- | Min mean return. A finite JSON number. |
min_mean_improvement |
no | number |
minimum 0 | Min mean improvement. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalGate"
}
OpenEnvEnvironmentEvalOutcomeObservable result after the paired decision and requested promotion policy are applied.0 fields
Type: string. Constraints: enum "diagnostic", "promoted", "kept", "rejected", "inconclusive", "error".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalOutcome"
}
OpenEnvEnvironmentEvalProgressLive bounded progress for the baseline or candidate half of paired evaluation.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
state |
yes | OpenEnvEnvironmentEvalState |
- | State. Lifecycle phase for paired held-out environment evaluation. |
groups_completed |
yes | NonNegativeInteger |
- | Groups completed. A whole number greater than or equal to zero. |
groups_total |
yes | PositiveInteger |
- | Groups total. A whole number greater than or equal to one. |
rollouts_completed |
yes | NonNegativeInteger |
- | Rollouts completed. A whole number greater than or equal to zero. |
rollouts_total |
yes | PositiveInteger |
- | Rollouts total. A whole number greater than or equal to one. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalProgress"
}
OpenEnvEnvironmentEvalStateLifecycle phase for paired held-out environment evaluation.0 fields
Type: string. Constraints: enum "pending", "collecting_baseline", "collecting_candidate", "completed", "failed", "cancelled".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalState"
}
OpenEnvEnvironmentEvalStatusAuthoritative paired held-out environment evaluation status and promotion result.12 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
state |
yes | OpenEnvEnvironmentEvalState |
- | State. Lifecycle phase for paired held-out environment evaluation. |
seed_start |
yes | NonNegativeInteger |
- | Seed start. A whole number greater than or equal to zero. |
groups |
yes | PositiveInteger |
- | Groups. A whole number greater than or equal to one. |
group_size |
yes | PositiveInteger |
- | Group size. A whole number greater than or equal to one. |
baseline |
yes | OpenEnvPolicyIdentity |
- | Baseline. Exact baseline or candidate policy identity. An omitted adapter denotes the base model. |
candidate |
yes | OpenEnvPolicyIdentity |
- | Candidate. Exact baseline or candidate policy identity. An omitted adapter denotes the base model. |
progress |
yes | OpenEnvEnvironmentEvalProgress |
- | Progress. Live bounded progress for the baseline or candidate half of paired evaluation. |
baseline_stats |
no | OpenEnvRolloutStats |
- | Baseline stats. Artifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics. |
candidate_stats |
no | OpenEnvRolloutStats |
- | Candidate stats. Artifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics. |
evidence |
no | OpenEnvEnvironmentEvalEvidence |
- | Evidence. Environment-owned returns and an exact two-sided sign test over independent per-seed mean-return pairs. |
outcome |
no | OpenEnvEnvironmentEvalOutcome |
- | Outcome. Observable result after the paired decision and requested promotion policy are applied. |
verdict |
no | String |
- | Verdict. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvEnvironmentEvalStatus"
}
OpenEnvEpisodeTerminationV1Why an OpenEnv episode ended from Kiln's point of view.0 fields
Type: string. Constraints: enum "done", "max_steps", "invalid_model_action", "protocol_error".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpenEnvEpisodeTerminationV1"
}
OpenEnvErrorCodeExact error code supplied by an OpenEnv WebSocket peer.0 fields
Type: string. Constraints: enum "INVALID_JSON", "UNKNOWN_TYPE", "VALIDATION_ERROR", "EXECUTION_ERROR", "CAPACITY_REACHED", "FACTORY_ERROR", "SESSION_ERROR".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvErrorCode"
}
OpenEnvIdentityContent-addressed identity established by OpenEnv discovery.10 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | String |
- | Schema. A text string. |
client_profile |
yes | String |
- | Client profile. A text string. |
base_url |
yes | String |
- | Base URL. A text string. |
websocket_url |
yes | String |
- | Websocket URL. A text string. |
authentication |
no | any |
enum "none", "bearer" | Authentication. |
openapi_version |
no | String | null |
- | Openapi version. |
environments |
yes | array<String> |
- | Environments. |
metadata |
yes | OpenEnvMetadata |
- | Metadata. Environment-authored metadata discovered from an OpenEnv server. |
schema_sha256 |
yes | Sha256 |
- | Schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
discovery_sha256 |
no | Sha256 |
- | Discovery SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvIdentity"
}
OpenEnvInspectRequestOne or more OpenEnv HTTP base URLs to discover, with optional origin-scoped server credential handles. `environments` is accepted as an input alias.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
environment_urls |
yes | array<NonEmptyString> |
minimum items 1 | Environment urls. |
credential_ids |
no | array<string | null> |
- | Credential IDs. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-input-aliases": {
"environments": "environment_urls"
},
"x-kiln-rust-type": "OpenEnvInspectRequest",
"x-kiln-semantic-constraints": [
"credential_ids is empty or has exactly one handle/null entry per environment_urls item"
]
}
OpenEnvInspectResponseComplete discovery results for the requested OpenEnv servers.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-inspection.v1" | Schema. |
environments |
yes | array<OpenEnvInspection> |
minimum items 1 | Environments. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvInspectResponse"
}
OpenEnvInspectionComplete protocol discovery result for one OpenEnv server.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
identity |
yes | OpenEnvIdentity |
- | Identity. Content-addressed identity established by OpenEnv discovery. |
schema |
yes | OpenEnvSchema |
- | Schema. JSON Schemas for OpenEnv actions, observations, and state. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvInspection"
}
OpenEnvMetadataEnvironment-authored metadata discovered from an OpenEnv server.6 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | String |
- | Name. A text string. |
description |
yes | String |
- | Description. A text string. |
readme_content |
no | String | null |
- | Readme content. |
version |
no | String | null |
- | Version. |
author |
no | String | null |
- | Author. |
documentation_url |
no | String | null |
- | Documentation URL. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvMetadata"
}
OpenEnvPolicyIdentityExact baseline or candidate policy identity. An omitted adapter denotes the base model.3 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
adapter |
no | String |
- | Adapter. A text string. |
adapter_content_revision |
no | Sha256 |
- | Adapter content revision. A lowercase SHA-256 digest prefixed with sha256:. |
execution_provenance_sha256 |
no | Sha256 |
- | Execution provenance SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvPolicyIdentity"
}
OpenEnvPostEvalStatusBounded projection of one post-training evaluation linked to an OpenEnv run.7 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
suite_name |
yes | NonEmptyString |
- | Suite name. A text string containing at least one character. |
state |
yes | EvalJobState |
- | State. See kiln-evals-v1.schema.json#/$defs/EvalJobState. |
examples_completed |
yes | NonNegativeInteger |
- | Examples completed. A whole number greater than or equal to zero. |
examples_total |
yes | NonNegativeInteger |
- | Examples total. A whole number greater than or equal to zero. |
headline_accuracy |
no | FiniteNumber |
- | Headline accuracy. A finite JSON number. |
error |
no | String |
- | Error. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvPostEvalStatus"
}
OpenEnvRolloutProvenanceV1Fail-closed environment, task, and outcome identity attached to a native OpenEnv rollout.15 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-rollout.v1" | Schema. |
environment_name |
yes | NonEmptyString |
- | Environment name. A text string containing at least one character. |
environment_base_url |
yes | NonEmptyString |
- | Environment base URL. A text string containing at least one character. |
openapi_version |
no | NonEmptyString |
- | Openapi version. A text string containing at least one character. |
discovery_sha256 |
no | Sha256 |
- | Discovery SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
environment_schema_sha256 |
yes | Sha256 |
- | Environment schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
action_schema_sha256 |
yes | Sha256 |
- | Action schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
behavior_policy |
no | RolloutBehaviorPolicyIdentityV1 |
- | Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1. |
reset_sha256 |
yes | Sha256 |
- | Reset SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
seed |
yes | NonNegativeInteger |
- | Seed. A whole number greater than or equal to zero. |
steps |
yes | NonNegativeInteger |
- | Steps. A whole number greater than or equal to zero. |
episode_return |
yes | FiniteNumber |
- | Episode return. A finite JSON number. |
terminal_done |
yes | Boolean |
- | Terminal done. Either true or false. |
termination |
yes | OpenEnvEpisodeTerminationV1 |
- | Termination. Why an OpenEnv episode ended from Kiln's point of view. |
protocol_error_code |
no | NonEmptyString |
- | Protocol error code. A text string containing at least one character. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpenEnvRolloutProvenanceV1",
"x-kiln-semantic-constraints": [
"terminal_done is true exactly when termination is done",
"protocol_error_code is present exactly when termination is protocol_error"
]
}
OpenEnvRolloutStatsArtifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics.12 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
mean_episode_return |
yes | FiniteNumber |
- | Mean episode return. A finite JSON number. |
min_episode_return |
no | FiniteNumber |
- | Min episode return. A finite JSON number. |
max_episode_return |
no | FiniteNumber |
- | Max episode return. A finite JSON number. |
done_count |
yes | NonNegativeInteger |
- | Done count. A whole number greater than or equal to zero. |
max_steps_count |
yes | NonNegativeInteger |
- | Max steps count. A whole number greater than or equal to zero. |
invalid_model_action_count |
yes | NonNegativeInteger |
- | Invalid model action count. A whole number greater than or equal to zero. |
protocol_error_count |
yes | NonNegativeInteger |
- | Protocol error count. A whole number greater than or equal to zero. |
recoverable_protocol_error_count |
yes | NonNegativeInteger |
- | Recoverable protocol error count. A whole number greater than or equal to zero. |
capacity_retry_count |
yes | NonNegativeInteger |
- | Capacity retry count. A whole number greater than or equal to zero. |
total_environment_steps |
yes | NonNegativeInteger |
- | Total environment steps. A whole number greater than or equal to zero. |
total_model_tokens |
yes | NonNegativeInteger |
- | Total model tokens. A whole number greater than or equal to zero. |
mean_model_latency_ms |
yes | FiniteNumber |
- | Mean model latency ms. A finite JSON number. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRolloutStats"
}
OpenEnvRunAdmissionBounded FIFO execution admission for one persisted OpenEnv workflow. Sequence is stable across restart; queue position is one-based and present only while waiting.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
max_active_runs |
yes | PositiveInteger |
- | Max active runs. A whole number greater than or equal to one. |
sequence |
yes | PositiveInteger |
- | Sequence. A whole number greater than or equal to one. |
queue_position |
no | PositiveInteger |
- | Queue position. A whole number greater than or equal to one. |
admitted_unix_ms |
no | NonNegativeInteger |
- | Admitted unix ms. A whole number greater than or equal to zero. |
queue_wait_ms |
no | NonNegativeInteger |
- | Queue wait ms. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunAdmission"
}
OpenEnvRunFailureBounded, self-contained terminal diagnosis retained with an OpenEnv run. Protocol and HTTP evidence are present only when supplied by the environment.9 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-run-failure.v1" | Schema. |
code |
yes | OpenEnvRunFailureCode |
- | Code. Stable, automation-safe terminal reason for an OpenEnv workflow failure. |
stage |
yes | OpenEnvRunFailureStage |
- | Stage. Closed workflow boundary that owned an operation when an OpenEnv run failed. |
retryable |
yes | Boolean |
- | Retryable. Either true or false. |
message |
yes | string |
maximum length 4096 | Message. |
hint |
yes | String |
- | Hint. A text string. |
occurred_unix_ms |
yes | NonNegativeInteger |
- | Occurred unix ms. A whole number greater than or equal to zero. |
protocol_code |
no | OpenEnvErrorCode |
- | Protocol code. Exact error code supplied by an OpenEnv WebSocket peer. |
http_status |
no | integer |
minimum 100; maximum 599 | HTTP status. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunFailure"
}
OpenEnvRunFailureCodeStable, automation-safe terminal reason for an OpenEnv workflow failure.0 fields
Type: string. Constraints: enum "run_admission_failed", "run_interrupted", "persisted_contract_invalid", "environment_unavailable", "environment_capacity_exhausted", "environment_protocol_error", "environment_identity_changed", "collection_failed", "artifact_publication_failed", "training_submission_failed", "training_failed", "training_evidence_invalid", "post_evaluation_failed", "environment_evaluation_failed", "internal_error".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunFailureCode"
}
OpenEnvRunFailureStageClosed workflow boundary that owned an operation when an OpenEnv run failed.0 fields
Type: string. Constraints: enum "restoration", "admission", "discovery", "collection", "identity_verification", "artifact_publication", "training_submission", "training", "post_evaluation", "environment_evaluation", "orchestration".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunFailureStage"
}
OpenEnvRunKindWhether a server-owned run stops after artifacts or queues native GRPO.0 fields
Type: string. Constraints: enum "rollout", "train".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunKind"
}
OpenEnvRunListNewest-first retained OpenEnv run records.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-run-list.v5" | Schema. |
runs |
yes | array<OpenEnvRunStatus> |
- | Runs. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunList"
}
OpenEnvRunProgressBounded group and episode progress for one OpenEnv run.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
groups_completed |
yes | NonNegativeInteger |
- | Groups completed. A whole number greater than or equal to zero. |
groups_total |
yes | PositiveInteger |
- | Groups total. A whole number greater than or equal to one. |
rollouts_completed |
yes | NonNegativeInteger |
- | Rollouts completed. A whole number greater than or equal to zero. |
rollouts_total |
yes | PositiveInteger |
- | Rollouts total. A whole number greater than or equal to one. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunProgress"
}
OpenEnvRunRequestA persisted OpenEnv rollout or rollout-and-train request with optional static and paired held-out environment evaluation. Immutable train contracts are preflighted before persistence or environment collection. `environments` is accepted as an input alias for `environment_urls`.24 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
kind |
no | OpenEnvRunKind |
- | Kind. Whether a server-owned run stops after artifacts or queues native GRPO. |
idempotency_key |
no | string |
minimum length 1; maximum length 128; pattern ^[A-Za-z0-9._:-]+$ | Idempotency key. |
environment_urls |
yes | array<NonEmptyString> |
minimum items 1 | Environment urls. |
credential_ids |
no | array<string | null> |
- | Credential IDs. |
adapter |
no | NonEmptyString |
- | Adapter. A text string containing at least one character. |
groups |
no | PositiveInteger |
- | Groups. A whole number greater than or equal to one. |
group_size |
no | PositiveInteger |
- | Group size. A whole number greater than or equal to one. |
seed_start |
no | NonNegativeInteger |
- | Seed start. A whole number greater than or equal to zero. |
reset_options |
no | object |
- | Reset options. |
environment_reset_options |
no | array<object> |
minimum items 1 | Environment reset options. |
max_steps |
no | PositiveInteger |
- | Max steps. A whole number greater than or equal to one. |
concurrency |
no | PositiveInteger |
- | Concurrency. A whole number greater than or equal to one. |
max_action_tokens |
no | PositiveInteger |
- | Max action tokens. A whole number greater than or equal to one. |
thinking_budget_tokens |
no | NonNegativeInteger |
- | Thinking budget tokens. A whole number greater than or equal to zero. |
temperature |
no | FiniteNumber |
- | Temperature. A finite JSON number. |
thinking |
no | Boolean |
- | Thinking. Either true or false. |
protocol_error_reward |
no | FiniteNumber |
- | Protocol error reward. A finite JSON number. |
max_recoverable_errors |
no | NonNegativeInteger |
- | Max recoverable errors. A whole number greater than or equal to zero. |
capacity_wait_seconds |
no | PositiveInteger |
- | Capacity wait seconds. A whole number greater than or equal to one. |
output_adapter |
no | NonEmptyString |
- | Output adapter. A text string containing at least one character. |
training_config |
no | GrpoConfig |
- | Training config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration. |
auto_load |
no | Boolean |
- | Auto load. Either true or false. |
post_eval |
no | PostEvalConfig |
- | Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate. |
environment_eval |
no | OpenEnvEnvironmentEvalConfig |
- | Environment eval. Paired held-out OpenEnv evaluation collected after native training. Omitted seed_start begins immediately after the training seed range. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-input-aliases": {
"environments": "environment_urls"
},
"x-kiln-rust-type": "OpenEnvRunRequest",
"x-kiln-semantic-constraints": [
"kind=train requires output_adapter",
"kind=rollout rejects output_adapter, training_config, post_eval, and environment_eval",
"while retained, an idempotency_key plus the same normalized request returns the original run; changed semantics with that key fail",
"idempotency_key is a non-secret opaque client token and is persisted in status",
"credential_ids is empty for unauthenticated endpoints or has exactly one origin-scoped handle/null entry per environment_urls item",
"environment_reset_options is empty or has exactly one object per environment_urls item and is mutually exclusive with non-empty reset_options",
"groups is at least environment_urls length so every endpoint is exercised and receipt-verifiable",
"environment_eval requires a distinct behavior and output adapter, and its seed interval must not overlap training",
"environment_eval.gate requires at least 20 distinct paired seed groups and cannot be combined with post_eval.min_accuracy",
"an environment gate defers auto_load until a significant exact paired sign-test win also satisfies configured return thresholds",
"Kiln overrides behavior_policy, base_adapter, output_name, and auto_load in training_config",
"kind=train preflights the effective native GRPO config, behavior adapter, installed post_eval suite, backend, GRPO workload, optimizer, and rank before persistence or environment collection"
]
}
OpenEnvRunStatePersisted OpenEnv orchestration lifecycle state.0 fields
Type: string. Constraints: enum "queued", "discovering", "collecting", "revalidating", "submitting", "rollout_ready", "training_queued", "training_running", "post_evaluating", "environment_evaluating", "completed", "failed", "cancelled".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunState"
}
OpenEnvRunStatusPersisted status, collection artifacts, immutable admitted training contract, and authoritative training and evaluation lifecycle for one OpenEnv run. Version 1 records may retain the historical terminal training_queued handoff; version 2 follows learning to completion; version 3 includes paired held-out environment evaluation; version 4 adds bounded FIFO execution admission; version 5 seals exact trainer settings before collection.21 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
enum "kiln.openenv-run.v1", "kiln.openenv-run.v2", "kiln.openenv-run.v3", "kiln.openenv-run.v4", "kiln.openenv-run.v5" | Schema. |
run_id |
yes | String |
- | Run ID. A text string. |
kind |
yes | OpenEnvRunKind |
- | Kind. Whether a server-owned run stops after artifacts or queues native GRPO. |
state |
yes | OpenEnvRunState |
- | State. Persisted OpenEnv orchestration lifecycle state. |
request |
yes | OpenEnvRunRequest |
- | Request. A persisted OpenEnv rollout or rollout-and-train request with optional static and paired held-out environment evaluation. Immutable train contracts are preflighted before persistence or environment collection. environments is accepted as an input alias for environment_urls. |
submitted_unix_ms |
yes | NonNegativeInteger |
- | Submitted unix ms. A whole number greater than or equal to zero. |
admission |
no | OpenEnvRunAdmission |
- | Admission. Bounded FIFO execution admission for one persisted OpenEnv workflow. Sequence is stable across restart; queue position is one-based and present only while waiting. |
finished_unix_ms |
no | NonNegativeInteger |
- | Finished unix ms. A whole number greater than or equal to zero. |
progress |
yes | OpenEnvRunProgress |
- | Progress. Bounded group and episode progress for one OpenEnv run. |
rollout_stats |
no | OpenEnvRolloutStats |
- | Rollout stats. Artifact-published OpenEnv reward, terminal-outcome, recovery, environment-work, and policy-cost statistics. |
environments |
no | array<OpenEnvIdentity> |
- | Environments. |
artifacts |
no | array<OpenEnvArtifact> |
- | Artifacts. |
training_job_id |
no | String |
- | Training job ID. A text string. |
training_contract |
no | OpenEnvTrainingContract |
- | Training contract. Immutable materialized native GRPO and optional post-evaluation settings admitted before OpenEnv collection. |
training_submission |
no | TrainingResponse |
- | Training submission. Receipt returned after Kiln validates and queues a training request. |
training |
no | OpenEnvTrainingStatus |
- | Training. Authoritative bounded projection of the native trainer and its admitted corpus lineage owned by an OpenEnv run. |
post_evaluations |
no | array<OpenEnvPostEvalStatus> |
- | Post evaluations. |
warnings |
no | array<NonEmptyString> |
- | Warnings. |
environment_evaluation |
no | OpenEnvEnvironmentEvalStatus |
- | Environment evaluation. Authoritative paired held-out environment evaluation status and promotion result. |
failure |
no | OpenEnvRunFailure |
- | Failure. Bounded, self-contained terminal diagnosis retained with an OpenEnv run. Protocol and HTTP evidence are present only when supplied by the environment. |
error |
no | String |
- | Error. A text string. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"allOf": [
{
"if": {
"required": [
"schema"
],
"properties": {
"schema": {
"enum": [
"kiln.openenv-run.v4",
"kiln.openenv-run.v5"
]
}
}
},
"then": {
"required": [
"admission"
]
}
},
{
"if": {
"required": [
"schema",
"state"
],
"properties": {
"schema": {
"enum": [
"kiln.openenv-run.v4",
"kiln.openenv-run.v5"
]
},
"state": {
"const": "queued"
}
}
},
"then": {
"properties": {
"admission": {
"required": [
"queue_position"
]
}
}
}
},
{
"if": {
"required": [
"schema",
"kind"
],
"properties": {
"schema": {
"const": "kiln.openenv-run.v5"
},
"kind": {
"const": "train"
}
}
},
"then": {
"required": [
"training_contract"
]
}
},
{
"if": {
"required": [
"schema",
"kind"
],
"properties": {
"schema": {
"const": "kiln.openenv-run.v5"
},
"kind": {
"const": "rollout"
}
}
},
"then": {
"not": {
"required": [
"training_contract"
]
}
}
},
{
"if": {
"required": [
"schema"
],
"properties": {
"schema": {
"enum": [
"kiln.openenv-run.v1",
"kiln.openenv-run.v2",
"kiln.openenv-run.v3",
"kiln.openenv-run.v4"
]
}
}
},
"then": {
"not": {
"required": [
"training_contract"
]
}
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvRunStatus",
"x-kiln-semantic-constraints": [
"v4 and v5 status always include admission",
"admission.sequence is stable and determines exact FIFO order across restart",
"v4 and v5 queued status include a live one-based queue_position",
"after admission, queue_position is omitted and admitted_unix_ms plus queue_wait_ms remain stable",
"v5 train status contains the immutable preflighted training_contract and executes from it",
"v5 rollout status omits training_contract",
"v1 through v4 status predates training_contract and omits it",
"new failed runs carry failure as the stable diagnosis while error remains a compatibility projection"
]
}
OpenEnvSchemaJSON Schemas for OpenEnv actions, observations, and state.3 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
action |
yes | AnyJson |
- | Action. Any valid JSON value. |
observation |
yes | AnyJson |
- | Observation. Any valid JSON value. |
state |
yes | AnyJson |
- | State. Any valid JSON value. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvSchema"
}
OpenEnvTaskApiSupportWhether the selected environment exposes a TaskProvider. HTTP 501 maps to unsupported without making the environment incompatible.0 fields
Type: string. Constraints: enum "available", "unsupported".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvTaskApiSupport"
}
OpenEnvTaskCatalogBounded Task API catalog. Arbitrary task rows are untrusted discovery data and have no protocol-defined reset semantics.8 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
environment_name |
yes | NonEmptyString |
- | Environment name. A text string containing at least one character. |
task_api |
yes | OpenEnvTaskApiSupport |
- | Task API. Whether the selected environment exposes a TaskProvider. HTTP 501 maps to unsupported without making the environment incompatible. |
splits |
yes | array<OpenEnvTaskSplit> |
- | Splits. |
selected_split |
no | NonEmptyString |
- | Selected split. A text string containing at least one character. |
num_tasks |
no | NonNegativeInteger |
- | Num tasks. A whole number greater than or equal to zero. |
start |
no | NonNegativeInteger |
- | Start. A whole number greater than or equal to zero. |
stop |
no | NonNegativeInteger |
- | Stop. A whole number greater than or equal to zero. |
tasks |
no | array<AnyJson> |
maximum items 200 | Tasks. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvTaskCatalog",
"x-kiln-semantic-constraints": [
"unsupported catalogs have no selected split or task page",
"task rows are never automatically mapped into WebSocket reset data"
]
}
OpenEnvTaskCatalogEntryOne canonical OpenEnv origin and its bounded Task API result.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
base_url |
yes | NonEmptyString |
- | Base URL. A text string containing at least one character. |
catalog |
yes | OpenEnvTaskCatalog |
- | Catalog. Bounded Task API catalog. Arbitrary task rows are untrusted discovery data and have no protocol-defined reset semantics. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTaskCatalogEntry"
}
OpenEnvTaskCatalogRequestDiscover Task API support and optionally request one bounded task page from each OpenEnv server. `environments` is accepted as an input alias.6 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
environment_urls |
yes | array<NonEmptyString> |
minimum items 1 | Environment urls. |
credential_ids |
no | array<string | null> |
- | Credential IDs. |
environment_name |
no | NonEmptyString |
- | Environment name. A text string containing at least one character. |
split |
no | NonEmptyString |
- | Split. A text string containing at least one character. |
start |
no | NonNegativeInteger |
- | Start. A whole number greater than or equal to zero. |
limit |
no | integer |
default 50; minimum 1; maximum 200 | Limit. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-input-aliases": {
"environments": "environment_urls"
},
"x-kiln-rust-type": "OpenEnvTaskCatalogRequest",
"x-kiln-semantic-constraints": [
"credential_ids is empty or has exactly one handle/null entry per environment_urls item",
"environment_name may be omitted only when each server advertises exactly one environment",
"omitting split returns split discovery without task rows"
]
}
OpenEnvTaskCatalogResponseBounded Task API discovery results for the requested OpenEnv servers.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-task-catalog.v1" | Schema. |
catalogs |
yes | array<OpenEnvTaskCatalogEntry> |
minimum items 1 | Catalogs. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTaskCatalogResponse"
}
OpenEnvTaskSplitOne provider-authored OpenEnv Task API split. Unknown provider fields are preserved.2 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
type |
yes | NonEmptyString |
- | Type. A text string containing at least one character. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"additionalProperties": {}
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_openenv::OpenEnvTaskSplit",
"x-kiln-unknown-field-policy": "preserved"
}
OpenEnvTerminationCountsV1Corpus counts for each explicit OpenEnv episode termination class.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
done |
yes | NonNegativeInteger |
- | Done. A whole number greater than or equal to zero. |
max_steps |
yes | NonNegativeInteger |
- | Max steps. A whole number greater than or equal to zero. |
invalid_model_action |
yes | NonNegativeInteger |
- | Invalid model action. A whole number greater than or equal to zero. |
protocol_error |
yes | NonNegativeInteger |
- | Protocol error. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpenEnvTerminationCountsV1"
}
OpenEnvTrainingCapacitySnapshotPoint-in-time native trainer capacity observed during OpenEnv preflight; it is not a reservation.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
checked_unix_ms |
yes | NonNegativeInteger |
- | Checked unix ms. A whole number greater than or equal to zero. |
queued_jobs |
yes | NonNegativeInteger |
- | Queued jobs. A whole number greater than or equal to zero. |
max_queued_jobs |
yes | PositiveInteger |
- | Max queued jobs. A whole number greater than or equal to one. |
tracked_jobs |
yes | NonNegativeInteger |
- | Tracked jobs. A whole number greater than or equal to zero. |
max_tracked_jobs |
yes | PositiveInteger |
- | Max tracked jobs. A whole number greater than or equal to one. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTrainingCapacitySnapshot"
}
OpenEnvTrainingContractImmutable materialized native GRPO and optional post-evaluation settings admitted before OpenEnv collection.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-training-contract.v1" | Schema. |
effective_config |
yes | GrpoConfig |
- | Effective config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration. |
post_eval |
no | PostEvalConfig |
- | Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate. |
behavior_policy |
no | RolloutBehaviorPolicyIdentityV1 |
- | Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTrainingContract"
}
OpenEnvTrainingDataProvenanceV1Validated semantic identity for an all-OpenEnv GRPO training corpus.11 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-training-data.v1" | Schema. |
groups |
yes | PositiveInteger |
- | Groups. A whole number greater than or equal to one. |
rollouts |
yes | PositiveInteger |
- | Rollouts. A whole number greater than or equal to one. |
unique_seeds |
yes | PositiveInteger |
- | Unique seeds. A whole number greater than or equal to one. |
seed_min |
yes | DecimalU64 |
- | Seed min. An unsigned 64-bit integer encoded as decimal text to preserve exact values. |
seed_max |
yes | DecimalU64 |
- | Seed max. An unsigned 64-bit integer encoded as decimal text to preserve exact values. |
total_steps |
yes | NonNegativeInteger |
- | Total steps. A whole number greater than or equal to zero. |
terminations |
yes | OpenEnvTerminationCountsV1 |
- | Terminations. Corpus counts for each explicit OpenEnv episode termination class. |
group_plan_sha256 |
yes | Sha256 |
- | Group plan SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
behavior_policy |
no | RolloutBehaviorPolicyIdentityV1 |
- | Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1. |
environments |
yes | array<OpenEnvTrainingEnvironmentV1> |
minimum items 1 | Environments. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpenEnvTrainingDataProvenanceV1",
"x-kiln-semantic-constraints": [
"every completion has OpenEnv provenance",
"all candidates in a group share endpoint, schema, reset hash, and seed",
"completion reward equals OpenEnv episode_return",
"when present, one behavior-policy identity is shared by every completion",
"per-environment and termination totals equal corpus totals"
]
}
OpenEnvTrainingEnvironmentV1One protocol endpoint and immutable schema identity represented in an OpenEnv training corpus.10 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
environment_name |
yes | NonEmptyString |
- | Environment name. A text string containing at least one character. |
environment_base_url |
yes | NonEmptyString |
- | Environment base URL. A text string containing at least one character. |
openapi_version |
no | NonEmptyString |
- | Openapi version. A text string containing at least one character. |
discovery_sha256 |
no | Sha256 |
- | Discovery SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
environment_schema_sha256 |
yes | Sha256 |
- | Environment schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
action_schema_sha256 |
yes | Sha256 |
- | Action schema SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
groups |
yes | PositiveInteger |
- | Groups. A whole number greater than or equal to one. |
rollouts |
yes | PositiveInteger |
- | Rollouts. A whole number greater than or equal to one. |
total_steps |
yes | NonNegativeInteger |
- | Total steps. A whole number greater than or equal to zero. |
terminations |
yes | OpenEnvTerminationCountsV1 |
- | Terminations. Corpus counts for each explicit OpenEnv episode termination class. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::OpenEnvTrainingEnvironmentV1"
}
OpenEnvTrainingPreflightReceiptSuccessful OpenEnv admission receipt containing the exact GRPO and optional post-evaluation contract the direct client must submit after collection.6 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
schema |
yes | any |
const "kiln.openenv-training-preflight.v1" | Schema. |
effective_config |
yes | GrpoConfig |
- | Effective config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration. |
post_eval |
no | PostEvalConfig |
- | Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate. |
behavior_policy |
yes | RolloutBehaviorPolicyIdentityV1 |
- | Behavior policy. See kiln-inference-v1.schema.json#/$defs/RolloutBehaviorPolicyIdentityV1. |
capacity |
yes | OpenEnvTrainingCapacitySnapshot |
- | Capacity. Point-in-time native trainer capacity observed during OpenEnv preflight; it is not a reservation. |
capacity_reserved |
yes | any |
const false | Capacity reserved. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTrainingPreflightReceipt"
}
OpenEnvTrainingPreflightRequestSide-effect-free OpenEnv training intent checked before direct CLI collection. Kiln owns rollout-derived GRPO fields.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
adapter |
no | NonEmptyString |
- | Adapter. A text string containing at least one character. |
output_adapter |
yes | NonEmptyString |
- | Output adapter. A text string containing at least one character. |
training_config |
no | GrpoConfig |
- | Training config. Complete GRPO optimizer, policy, filtering, checkpoint, and composite-loss configuration. |
auto_load |
no | Boolean |
- | Auto load. Either true or false. |
post_eval |
no | PostEvalConfig |
- | Post eval. Optional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTrainingPreflightRequest"
}
OpenEnvTrainingStatusAuthoritative bounded projection of the native trainer and its admitted corpus lineage owned by an OpenEnv run.11 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
state |
yes | TrainingState |
- | State. Training-job lifecycle state. Cancelled jobs are represented as failed with a cancellation error. |
progress |
yes | FiniteNumber |
- | Progress. A finite JSON number. |
current_loss |
no | FiniteNumber |
- | Current loss. A finite JSON number. |
epoch |
no | NonNegativeInteger |
- | Epoch. A whole number greater than or equal to zero. |
adapter_path |
no | String |
- | Adapter path. A text string. |
training_data |
no | TrainingDataProvenance |
- | Training data. Dataset and split identity recorded when Kiln accepts the training request. |
linked_eval_job_ids |
no | array<String> |
- | Linked eval job IDs. |
post_eval_verdict |
no | String |
- | Post eval verdict. A text string. |
gate_outcome |
no | any |
enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" | Gate outcome. |
error |
no | String |
- | Error. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "OpenEnvTrainingStatus"
}
OptimizerOptimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected.0 fields
Type: object | object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "sgd"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "adam_w"
},
"beta1": {
"$ref": "#/$defs/FiniteNumber"
},
"beta2": {
"$ref": "#/$defs/FiniteNumber"
},
"eps": {
"$ref": "#/$defs/FiniteNumber"
},
"weight_decay": {
"$ref": "#/$defs/FiniteNumber"
}
}
},
{
"type": "object",
"additionalProperties": false,
"required": [
"kind"
],
"properties": {
"kind": {
"const": "muon"
},
"momentum": {
"$ref": "#/$defs/FiniteNumber"
},
"nesterov": {
"$ref": "#/$defs/Boolean"
},
"ns_iters": {
"$ref": "#/$defs/NonNegativeInteger"
},
"weight_decay": {
"$ref": "#/$defs/FiniteNumber"
}
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::Optimizer"
}
PositiveIntegerA whole number greater than or equal to one.0 fields
Type: integer. Constraints: minimum 1.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "u64 | u32 | usize"
}
PostEvalConfigOptional evaluation after training. A minimum accuracy can prevent automatic adapter loading when the candidate misses the gate.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
suite |
yes | NonEmptyString |
- | Suite. A text string containing at least one character. |
data_scope |
no | PostEvalDataScope |
- | Data scope. Whether post-training evaluation is held out or an explicit train-set diagnostic. |
generation |
no | EvalGenerationParams |
- | Generation. See kiln-evals-v1.schema.json#/$defs/EvalGenerationParams. |
min_accuracy |
no | UnitInterval |
- | Min accuracy. A number from 0 through 1, inclusive. |
include_baseline |
no | Boolean |
- | Include baseline. Either true or false. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"allOf": [
{
"if": {
"required": [
"data_scope"
],
"properties": {
"data_scope": {
"const": "train-set-eval"
}
}
},
"then": {
"not": {
"required": [
"min_accuracy"
]
}
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_eval::PostEvalConfig",
"x-kiln-semantic-constraints": [
"train-set-eval is diagnostic only and cannot set min_accuracy"
],
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
PostEvalDataScopeWhether post-training evaluation is held out or an explicit train-set diagnostic.0 fields
Type: string. Constraints: enum "held-out", "train-set-eval".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_eval::PostEvalDataScope"
}
PostEvalGateEvidenceStored paired-test and confidence-interval evidence for one post-training promotion decision.29 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
policy_version |
yes | NonEmptyString |
- | Policy version. A text string containing at least one character. |
suite_policy |
yes | NonEmptyString |
- | Suite policy. A text string containing at least one character. |
eval_job_id |
yes | NonEmptyString |
- | Eval job ID. A text string containing at least one character. |
suite_name |
yes | NonEmptyString |
- | Suite name. A text string containing at least one character. |
suite_hash |
yes | NonEmptyString |
- | Suite hash. A text string containing at least one character. |
effective_generation_hash |
yes | NonEmptyString |
- | Effective generation hash. A text string containing at least one character. |
baseline_adapter |
no | String |
- | Baseline adapter. A text string. |
candidate_adapter |
yes | NonEmptyString |
- | Candidate adapter. A text string containing at least one character. |
aggregation |
yes | NonEmptyString |
- | Aggregation. A text string containing at least one character. |
minimum_paired_examples |
yes | PositiveInteger |
- | Minimum paired examples. A whole number greater than or equal to one. |
paired_examples |
yes | PositiveInteger |
- | Paired examples. A whole number greater than or equal to one. |
improved |
yes | NonNegativeInteger |
- | Improved. A whole number greater than or equal to zero. |
regressed |
yes | NonNegativeInteger |
- | Regressed. A whole number greater than or equal to zero. |
tied |
yes | NonNegativeInteger |
- | Tied. A whole number greater than or equal to zero. |
exact_sign_test_p_value |
yes | FiniteNumber |
- | Exact sign test p value. A finite JSON number. |
exact_sign_test_alpha |
yes | FiniteNumber |
- | Exact sign test alpha. A finite JSON number. |
baseline_accuracy |
yes | FiniteNumber |
- | Baseline accuracy. A finite JSON number. |
baseline_accuracy_lower_bound |
yes | FiniteNumber |
- | Baseline accuracy lower bound. A finite JSON number. |
baseline_accuracy_upper_bound |
yes | FiniteNumber |
- | Baseline accuracy upper bound. A finite JSON number. |
candidate_accuracy |
yes | FiniteNumber |
- | Candidate accuracy. A finite JSON number. |
candidate_accuracy_lower_bound |
yes | FiniteNumber |
- | Candidate accuracy lower bound. A finite JSON number. |
candidate_accuracy_upper_bound |
yes | FiniteNumber |
- | Candidate accuracy upper bound. A finite JSON number. |
accuracy_confidence_level |
yes | FiniteNumber |
- | Accuracy confidence level. A finite JSON number. |
minimum_accuracy |
yes | FiniteNumber |
- | Minimum accuracy. A finite JSON number. |
required_relative_recovery |
no | FiniteNumber |
- | Required relative recovery. A finite JSON number. |
relative_recovery_lower_bound |
no | FiniteNumber |
- | Relative recovery lower bound. A finite JSON number. |
required_absolute_gain |
no | FiniteNumber |
- | Required absolute gain. A finite JSON number. |
absolute_gain_lower_bound |
no | FiniteNumber |
- | Absolute gain lower bound. A finite JSON number. |
outcome |
yes | any |
enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" | Outcome. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::PostEvalGateEvidence"
}
PromptsSourceEither a registered dataset name or inline prompts for an OPD recipe step.0 fields
Type: object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"prompts"
],
"properties": {
"prompts": {
"type": "array",
"items": {
"$ref": "#/$defs/OpdPrompt"
},
"minItems": 1
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "PromptsSource"
}
PublishPayloadOptional description and uploader label for a future library publication.2 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
description |
no | String | null |
- | Description. |
uploader |
no | String | null |
- | Uploader. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "PublishPayload",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
PublishToLibraryResponseResult of validating that a local adapter has the receipt required for publication. No remote upload occurs.7 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
status |
yes | any |
const "ready_to_publish" | Status. |
backend |
yes | String |
- | Backend. A text string. |
intended_id |
yes | NonEmptyString |
- | Intended ID. A text string containing at least one character. |
uploader |
yes | String | null |
- | Uploader. |
description |
yes | String | null |
- | Description. |
receipt_schema_version |
yes | PositiveInteger |
- | Receipt schema version. A whole number greater than or equal to one. |
note |
yes | String |
- | Note. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-current-runtime-result": "contract_only_no_remote_upload",
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "PublishToLibraryResponse"
}
QueueResponseTraining jobs grouped into running, queued, and terminal collections.3 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
running |
yes | TrainingStatus | null |
- | Running. |
queued |
yes | array<QueueStatusEntry> |
- | Queued. |
completed |
yes | array<TrainingStatus> |
- | Completed. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "QueueResponse"
}
QueueStatusEntryOne queued training job and its first-in, first-out position.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
job_type |
yes | TrainingJobType |
- | Job type. Training pipeline used by the job. |
adapter_name |
yes | String |
- | Adapter name. A text string. |
position |
yes | PositiveInteger |
- | Position. A whole number greater than or equal to one. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "QueueStatusEntry"
}
RecipeA named, inline sequence of training and post-evaluation steps.3 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
description |
no | String | null |
- | Description. |
steps |
yes | array<RecipeStep> |
minimum items 1 | Steps. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "Recipe",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
RecipeAdmissionDescriptorWhether the current server can run a built-in recipe and, if not, why.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
supported |
yes | Boolean |
- | Supported. Either true or false. |
unavailable_reason |
yes | String | null |
- | Unavailable reason. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "RecipeAdmissionDescriptor"
}
RecipeDescriptorSummary of one built-in recipe and its current availability.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
name |
yes | NonEmptyString |
- | Name. A text string containing at least one character. |
description |
yes | String | null |
- | Description. |
num_steps |
yes | NonNegativeInteger |
- | Num steps. A whole number greater than or equal to zero. |
admission |
yes | RecipeAdmissionDescriptor |
- | Admission. Whether the current server can run a built-in recipe and, if not, why. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "RecipeDescriptor"
}
RecipeRunRequestRun either a built-in recipe by name or an inline recipe body, with optional placeholder values.0 fields
Type: object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"recipe"
],
"properties": {
"recipe": {
"$ref": "#/$defs/NonEmptyString"
},
"inputs": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/AnyJson"
}
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"body"
],
"properties": {
"body": {
"$ref": "#/$defs/Recipe"
},
"inputs": {
"type": "object",
"additionalProperties": {
"$ref": "#/$defs/AnyJson"
}
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "RecipeRunRequest"
}
RecipeRunResponseJobs and effective seeds queued for one recipe run.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
recipe |
yes | NonEmptyString |
- | Recipe. A text string containing at least one character. |
job_ids |
yes | array<NonEmptyString> |
- | Job IDs. |
effective_seeds |
yes | object |
- | Effective seeds. |
message |
yes | String |
- | Message. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "RecipeRunResponse"
}
RecipeStepOne training or post-evaluation step in a recipe.0 fields
Type: object | object | object | object | object | object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"examples_from"
],
"properties": {
"kind": {
"const": "sft"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"base_adapter": {
"anyOf": [
{
"$ref": "#/$defs/String"
},
{
"type": "null"
}
]
},
"examples_from": {
"$ref": "#/$defs/ExamplesSource"
},
"config": {
"$ref": "#/$defs/SftConfig"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"teacher",
"prompts_from"
],
"properties": {
"kind": {
"const": "opd"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"teacher": {
"$ref": "#/$defs/NonEmptyString"
},
"prompts_from": {
"$ref": "#/$defs/PromptsSource"
},
"config": {
"$ref": "#/$defs/OpdConfig"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"sources"
],
"properties": {
"kind": {
"const": "distill_merge"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"sources": {
"type": "array",
"items": {
"$ref": "#/$defs/DistillMergeSource"
},
"minItems": 1
},
"student": {
"$ref": "#/$defs/String"
},
"rollout_budget": {
"$ref": "#/$defs/PositiveInteger"
},
"config": {
"$ref": "#/$defs/OpdConfig"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"teacher",
"mode"
],
"properties": {
"kind": {
"const": "distill_pump"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"teacher": {
"$ref": "#/$defs/NonEmptyString"
},
"mode": {
"$ref": "#/$defs/DistillPumpMode"
},
"config": {
"$ref": "#/$defs/OpdConfig"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"new_data",
"behavioural_teacher"
],
"properties": {
"kind": {
"const": "distill_refresh"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"new_data": {
"$ref": "#/$defs/NewKnowledgeSource"
},
"behavioural_teacher": {
"$ref": "#/$defs/NonEmptyString"
},
"background_chat": {
"$ref": "#/$defs/String"
},
"config": {
"$ref": "#/$defs/OpdConfig"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"name",
"mode"
],
"properties": {
"kind": {
"const": "distill_self"
},
"name": {
"$ref": "#/$defs/NonEmptyString"
},
"mode": {
"$ref": "#/$defs/SelfDistillMode"
},
"config": {
"$ref": "#/$defs/OpdConfig"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"kind",
"suite",
"adapter",
"require_min_score"
],
"properties": {
"kind": {
"const": "post_eval"
},
"suite": {
"$ref": "#/$defs/NonEmptyString"
},
"adapter": {
"$ref": "#/$defs/String"
},
"require_min_score": {
"$ref": "#/$defs/UnitInterval"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "RecipeStep"
}
RecipesListResponseAll built-in recipes and whether the current server can run each one.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
recipes |
yes | array<RecipeDescriptor> |
- | Recipes. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "RecipesListResponse"
}
RewardFilterOnEmptyWhat to do when reward-variance filtering retains too few groups.0 fields
Type: string. Constraints: enum "fail", "train-all", "skip".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::RewardFilterOnEmpty"
}
Rfc3339TimestampAn RFC 3339 timestamp.0 fields
Type: string. Constraints: format date-time.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "String"
}
RunStatusLifecycle state for an embedded agent run.0 fields
Type: string. Constraints: enum "queued", "running", "completed", "failed", "aborted", "timed_out", "interrupted".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "crate::agent_runs::RunStatus"
}
ScoredRolloutOne rewarded completion with optional trajectory, exact generation provenance, and OpenEnv episode identity.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
text |
yes | String |
- | Text. A text string. |
reward |
yes | FiniteNumber |
- | Reward. A finite JSON number. |
trajectory |
no | array<TurnSegmentInput> |
- | Trajectory. |
provenance |
no | RolloutProvenanceV1 |
- | Provenance. See kiln-inference-v1.schema.json#/$defs/RolloutProvenanceV1. |
openenv |
no | OpenEnvRolloutProvenanceV1 |
- | Openenv. Fail-closed environment, task, and outcome identity attached to a native OpenEnv rollout. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::ScoredRollout",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
SelfDistillModeSelf-distillation strategy for using information available only during training.0 fields
Type: string. Constraints: enum "ground_truth_conditioning", "conciseness", "document_as_pi", "reverse_teacher".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::SelfDistillMode"
}
SelfImproveRequestRequest to queue the phases of one agent self-improvement round.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
agent |
no | NonEmptyString |
- | Agent. A text string containing at least one character. |
judge |
no | NonEmptyString |
- | Judge. A text string containing at least one character. |
crisp |
no | Boolean |
- | Crisp. Either true or false. |
config |
no | OpdConfig |
- | Config. OPD rollout, objective, optimizer, checkpoint, and optional ECHO settings. The semantic constraints list values the server currently accepts. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "SelfImproveRequest",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
SelfImproveResponseJob IDs and seeds queued for one self-improvement round.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_ids |
yes | array<NonEmptyString> |
minimum items 1 | Job IDs. |
effective_seeds |
yes | object |
- | Effective seeds. |
state |
yes | any |
const "queued" | State. |
message |
yes | String |
- | Message. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "SelfImproveResponse"
}
SftConfigNative SFT settings. Omitted fields use server defaults; unknown fields reject the request.20 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
training_profile |
no | SftTrainingProfile |
- | Training profile. Versioned identifier for the native SFT workflow. |
invalid_row_policy |
no | SftInvalidRowPolicy |
- | Invalid row policy. Whether a malformed dataset row rejects the request or is skipped. |
epochs |
no | PositiveInteger |
- | Epochs. A whole number greater than or equal to one. |
learning_rate |
no | FiniteNumber | null |
- | Learning rate. |
lora_rank |
no | PositiveInteger |
- | LoRA rank. A whole number greater than or equal to one. |
lora_alpha |
no | FiniteNumber |
- | LoRA alpha. A finite JSON number. |
train_mtp |
no | Boolean | null |
- | Train MTP. |
base_adapter |
no | String | null |
- | Base adapter. |
allow_adapter_shape_conversion |
no | Boolean |
- | Allow adapter shape conversion. Either true or false. |
allow_high_lora_scale |
no | Boolean |
- | Allow high LoRA scale. Either true or false. |
output_name |
no | String | null |
- | Output name. |
auto_load |
no | Boolean |
- | Auto load. Either true or false. |
checkpoint_interval |
no | PositiveInteger | null |
- | Checkpoint interval. |
resume_checkpoint |
no | String | null |
- | Resume checkpoint. |
grad_checkpoint_segments |
no | PositiveInteger | null |
- | Grad checkpoint segments. |
detect_anomaly |
no | Boolean |
- | Detect anomaly. Either true or false. |
seed |
no | NonNegativeInteger | null |
- | Seed. |
optimizer |
no | Optimizer |
- | Optimizer. Optimizer selection and the settings accepted by each optimizer. Unknown optimizer settings are rejected. |
adapter_smoke_test |
no | Boolean |
- | Adapter smoke test. Either true or false. |
adapter_smoke_prompts |
no | array<NonEmptyString> | null |
- | Adapter smoke prompts. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::SftConfig"
}
SftExampleOne conversation submitted for supervised fine-tuning.1 field
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
messages |
no | array<TrainingChatMessageInput> |
- | Messages. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::SftExample",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
SftInvalidRowPolicyWhether a malformed dataset row rejects the request or is skipped.0 fields
Type: string. Constraints: enum "fail", "skip".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::SftInvalidRowPolicy"
}
SftRequestSFT submission using exactly one inline, local-path, or registered-dataset source.6 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
examples |
no | array<SftExample> |
minimum items 1 | Examples. |
dataset_path |
no | String | null |
- | Dataset path. |
dataset |
no | String | null |
- | Dataset. |
dataset_split |
no | DatasetSplit |
- | Dataset split. See kiln-evals-v1.schema.json#/$defs/DatasetSplit. |
config |
no | SftConfig |
- | Config. Native SFT settings. Omitted fields use server defaults; unknown fields reject the request. |
post_eval |
no | PostEvalConfig | null |
- | Post eval. |
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"allOf": [
{
"if": {
"required": [
"dataset_split"
]
},
"then": {
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
}
}
}
],
"oneOf": [
{
"required": [
"examples"
],
"not": {
"anyOf": [
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"examples"
]
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"not": {
"type": "null"
}
}
}
}
]
}
},
{
"required": [
"dataset"
],
"properties": {
"dataset": {
"$ref": "#/$defs/NonEmptyString"
}
},
"not": {
"anyOf": [
{
"required": [
"examples"
]
},
{
"required": [
"dataset_path"
],
"properties": {
"dataset_path": {
"not": {
"type": "null"
}
}
}
}
]
}
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "SftRequest",
"x-kiln-semantic-constraints": [
"server SFT rejects train_mtp=true",
"dataset_split requires a registered named dataset and defaults to train"
]
}
SftTrainingProfileVersioned identifier for the native SFT workflow.0 fields
Type: string. Constraints: enum "native_online_lora_v1".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::SftTrainingProfile"
}
Sha256A lowercase SHA-256 digest prefixed with `sha256:`.0 fields
Type: string. Constraints: pattern ^sha256:[0-9a-f]{64}$.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "String"
}
StableOpdModeStable-OPD setting. Only `off` is currently executable.0 fields
Type: object | object | object.
Composition and conditional rules
The following JSON is copied exactly from this schema node.
{
"oneOf": [
{
"type": "object",
"additionalProperties": true,
"required": [
"mode"
],
"properties": {
"mode": {
"const": "off"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"mode"
],
"properties": {
"mode": {
"const": "auto"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
},
{
"type": "object",
"additionalProperties": true,
"required": [
"mode",
"kl_beta",
"sft_lambda"
],
"properties": {
"mode": {
"const": "manual"
},
"kl_beta": {
"$ref": "#/$defs/FiniteNumber"
},
"sft_lambda": {
"$ref": "#/$defs/FiniteNumber"
}
},
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
]
}
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::StableOpdMode"
}
StringA text string.0 fields
Type: string.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "String"
}
TerminalStatusResponseEmbedded-terminal security status, local `pi` path, working directory, and session state.6 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
enabled |
yes | Boolean |
- | Enabled. Either true or false. |
disabled_reason |
yes | String | null |
- | Disabled reason. |
pi_available |
yes | Boolean |
- | Pi available. Either true or false. |
pi_path |
yes | String | null |
- | Pi path. |
cwd |
yes | String |
- | Cwd. A text string. |
session_active |
yes | Boolean |
- | Session active. Either true or false. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TerminalStatusResponse"
}
TierDefaultsBuilt-in planning defaults for a coarse deployment tier. Tier names are presets, not hardware detection, measured performance classes, or device-specific tuning.15 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
tier |
yes | any |
enum "laptop", "prosumer", "corporate" | Tier. |
default_logit_source |
yes | String |
- | Default logit source. A text string. |
default_loss |
yes | String |
- | Default loss. A text string. |
default_top_k |
yes | PositiveInteger |
- | Default top k. A whole number greater than or equal to one. |
lora_rank |
yes | PositiveInteger |
- | LoRA rank. A whole number greater than or equal to one. |
batch_size |
yes | PositiveInteger |
- | Batch size. A whole number greater than or equal to one. |
samples_per_prompt_default |
yes | PositiveInteger |
- | Samples per prompt default. A whole number greater than or equal to one. |
samples_per_prompt_data_multiplier |
yes | PositiveInteger |
- | Samples per prompt data multiplier. A whole number greater than or equal to one. |
max_rollout_tokens |
yes | PositiveInteger |
- | Max rollout tokens. A whole number greater than or equal to one. |
auto_checkpoint_cadence_steps |
yes | PositiveInteger |
- | Auto checkpoint cadence steps. A whole number greater than or equal to one. |
cost_cap_default_usd |
yes | FiniteNumber | null |
- | Cost cap default usd. |
cold_start_overlap_threshold |
yes | UnitInterval |
- | Cold start overlap threshold. A number from 0 through 1, inclusive. |
mixture_distillation_golden_fraction |
yes | UnitInterval |
- | Mixture distillation golden fraction. A number from 0 through 1, inclusive. |
eval_gate_required |
yes | Boolean |
- | Eval gate required. Either true or false. |
notifications_channels |
yes | array<String> |
- | Notifications channels. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TierDefaults"
}
TierDefaultsListResponseAll built-in deployment-tier presets.1 field
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
tiers |
yes | array<TierDefaults> |
minimum items 3 | Tiers. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TierDefaultsListResponse"
}
TierDefaultsResponseOne requested preset and its built-in planning defaults.2 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
tier |
yes | any |
enum "laptop", "prosumer", "corporate" | Tier. |
defaults |
yes | TierDefaults |
- | Defaults. Built-in planning defaults for a coarse deployment tier. Tier names are presets, not hardware detection, measured performance classes, or device-specific tuning. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TierDefaultsResponse"
}
TraceOutcomeOutcome signals inferred from a `pi` session. These values are best-effort observations, not verified success criteria.3 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
ended_with_exit_0 |
yes | Boolean | null |
- | Ended with exit 0. |
user_edited_agent_files |
yes | array<String> |
- | User edited agent files. |
has_followup_attempt |
yes | Boolean | null |
- | Has followup attempt. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TraceOutcome"
}
TrainingChatMessageInputA chat message accepted by training endpoints. `content` may be text, null, or a structured content-parts array; structured arrays are converted to text before training.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
role |
yes | String |
- | Role. A text string. |
content |
no | String | null | array<AnyJson> |
- | Content. |
tool_calls |
no | array<AnyJson> | null |
- | Tool calls. |
name |
no | String | null |
- | Name. |
tool_call_id |
no | String | null |
- | Tool call ID. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_core::tokenizer::ChatMessage",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
TrainingChatMessageOutputA normalized chat message returned by Kiln.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
role |
yes | String |
- | Role. A text string. |
content |
yes | String |
- | Content. A text string. |
tool_calls |
no | array<AnyJson> |
- | Tool calls. |
name |
no | String |
- | Name. A text string. |
tool_call_id |
no | String |
- | Tool call ID. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_core::tokenizer::ChatMessage"
}
TrainingCheckpointSummarySummary of the newest checkpoint whose manifest is valid and can be resumed.16 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
resume_checkpoint |
yes | NonEmptyString |
- | Resume checkpoint. A text string containing at least one character. |
checkpoint_id |
yes | NonEmptyString |
- | Checkpoint ID. A text string containing at least one character. |
training_kind |
yes | TrainingKind |
- | Training kind. Training workflow recorded in a checkpoint. |
data_source_kind |
yes | String |
- | Data source kind. A text string. |
global_step |
yes | NonNegativeInteger |
- | Global step. A whole number greater than or equal to zero. |
total_steps |
yes | NonNegativeInteger |
- | Total steps. A whole number greater than or equal to zero. |
next_epoch_index |
yes | NonNegativeInteger |
- | Next epoch index. A whole number greater than or equal to zero. |
next_cursor_in_epoch |
yes | NonNegativeInteger |
- | Next cursor in epoch. A whole number greater than or equal to zero. |
complete |
yes | Boolean |
- | Complete. Either true or false. |
created_at |
yes | Rfc3339Timestamp |
- | Created at. An RFC 3339 timestamp. |
effective_config |
yes | AnyJson |
- | Effective config. Any valid JSON value. |
data_content_sha256 |
yes | Sha256 |
- | Data content SHA-256. A lowercase SHA-256 digest prefixed with sha256:. |
data_item_count |
yes | NonNegativeInteger |
- | Data item count. A whole number greater than or equal to zero. |
teacher_id |
no | String |
- | Teacher ID. A text string. |
teacher_identity_revision |
no | String |
- | Teacher identity revision. A text string. |
teacher_content_revision |
no | String |
- | Teacher content revision. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TrainingCheckpointSummary"
}
TrainingDataProvenanceDataset and split identity recorded when Kiln accepts the training request.8 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
source |
yes | NonEmptyString |
- | Source. A text string containing at least one character. |
dataset |
no | NonEmptyString |
- | Dataset. A text string containing at least one character. |
split |
no | DatasetSplit |
- | Split. See kiln-evals-v1.schema.json#/$defs/DatasetSplit. |
dataset_corpus_sha256 |
no | Sha256Digest |
- | Dataset corpus SHA-256. See kiln-evals-v1.schema.json#/$defs/Sha256Digest. |
split_manifest_sha256 |
no | Sha256Digest |
- | Split manifest SHA-256. See kiln-evals-v1.schema.json#/$defs/Sha256Digest. |
admitted_corpus_sha256 |
yes | Sha256Digest |
- | Admitted corpus SHA-256. See kiln-evals-v1.schema.json#/$defs/Sha256Digest. |
rows |
yes | NonNegativeInteger |
- | Rows. A whole number greater than or equal to zero. |
openenv |
no | OpenEnvTrainingDataProvenanceV1 |
- | Openenv. Validated semantic identity for an all-OpenEnv GRPO training corpus. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::TrainingDataProvenance"
}
TrainingJobDetailDetailed job status with its loss curve, receipts, replay request, linked evals, and newest checkpoint.26 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
state |
yes | TrainingState |
- | State. Training-job lifecycle state. Cancelled jobs are represented as failed with a cancellation error. |
progress |
yes | FiniteNumber |
- | Progress. A finite JSON number. |
current_loss |
yes | FiniteNumber | null |
- | Current loss. |
adapter_name |
yes | String | null |
- | Adapter name. |
effective_seed |
no | DecimalU64 |
- | Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values. |
started_at |
yes | String |
- | Started at. A text string. |
elapsed_secs |
yes | FiniteNumber |
- | Elapsed secs. A finite JSON number. |
submitted_unix_ms |
no | NonNegativeInteger |
- | Submitted unix ms. A whole number greater than or equal to zero. |
finished_unix_ms |
no | NonNegativeInteger |
- | Finished unix ms. A whole number greater than or equal to zero. |
job_type |
no | TrainingJobType |
- | Job type. Training pipeline used by the job. |
training_data |
no | TrainingDataProvenance |
- | Training data. Dataset and split identity recorded when Kiln accepts the training request. |
error |
no | String |
- | Error. A text string. |
post_eval_verdict |
no | String |
- | Post eval verdict. A text string. |
gate_outcome |
no | any |
enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" | Gate outcome. |
post_eval_gate_evidence |
no | array<PostEvalGateEvidence> |
- | Post eval gate evidence. |
epoch |
yes | NonNegativeInteger | null |
- | Epoch. |
adapter_path |
yes | String | null |
- | Adapter path. |
auto_load |
yes | Boolean |
- | Auto load. Either true or false. |
linked_eval_job_ids |
yes | array<String> |
- | Linked eval job IDs. |
loss_history |
yes | array<TrainingLossSample> |
- | Loss history. |
train_receipt |
yes | AnyJson | null |
- | Train receipt. |
replay_request |
yes | AnyJson | null |
- | Replay request. |
latest_checkpoint |
yes | TrainingCheckpointSummary | null |
- | Latest checkpoint. |
checkpoint_error |
yes | String | null |
- | Checkpoint error. |
metadata_error |
yes | String | null |
- | Metadata error. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TrainingJobDetail"
}
TrainingJobTypeTraining pipeline used by the job.0 fields
Type: string. Constraints: enum "sft", "grpo", "opd".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "crate::state::TrainingJobType"
}
TrainingKindTraining workflow recorded in a checkpoint.0 fields
Type: string. Constraints: enum "sft", "grpo", "opd", "capability-distillation".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::checkpoint::TrainingKind"
}
TrainingLossSampleOne retained sample from the live training-loss curve.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
epoch |
yes | NonNegativeInteger |
- | Epoch. A whole number greater than or equal to zero. |
progress |
yes | FiniteNumber |
- | Progress. A finite JSON number. |
loss |
yes | FiniteNumber |
- | Loss. A finite JSON number. |
elapsed_secs |
yes | FiniteNumber |
- | Elapsed secs. A finite JSON number. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "crate::state::TrainingLossSample"
}
TrainingResponseReceipt returned after Kiln validates and queues a training request.4 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
state |
yes | any |
const "queued" | State. |
effective_seed |
yes | DecimalU64 |
- | Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values. |
message |
yes | String |
- | Message. A text string. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TrainingResponse"
}
TrainingStateTraining-job lifecycle state. Cancelled jobs are represented as `failed` with a cancellation error.0 fields
Type: string. Constraints: enum "queued", "running", "completed", "failed".
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::TrainingState"
}
TrainingStatusCurrent or archived status for one training job.16 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
job_id |
yes | NonEmptyString |
- | Job ID. A text string containing at least one character. |
state |
yes | TrainingState |
- | State. Training-job lifecycle state. Cancelled jobs are represented as failed with a cancellation error. |
progress |
yes | FiniteNumber |
- | Progress. A finite JSON number. |
current_loss |
yes | FiniteNumber | null |
- | Current loss. |
adapter_name |
yes | String | null |
- | Adapter name. |
effective_seed |
no | DecimalU64 |
- | Effective seed. An unsigned 64-bit integer encoded as decimal text to preserve exact values. |
started_at |
yes | String |
- | Started at. A text string. |
elapsed_secs |
yes | FiniteNumber |
- | Elapsed secs. A finite JSON number. |
submitted_unix_ms |
no | NonNegativeInteger |
- | Submitted unix ms. A whole number greater than or equal to zero. |
finished_unix_ms |
no | NonNegativeInteger |
- | Finished unix ms. A whole number greater than or equal to zero. |
job_type |
no | TrainingJobType |
- | Job type. Training pipeline used by the job. |
training_data |
no | TrainingDataProvenance |
- | Training data. Dataset and split identity recorded when Kiln accepts the training request. |
error |
no | String |
- | Error. A text string. |
post_eval_verdict |
no | String |
- | Post eval verdict. A text string. |
gate_outcome |
no | any |
enum "promoted", "kept", "regression", "demoted", "inconclusive", "error" | Gate outcome. |
post_eval_gate_evidence |
no | array<PostEvalGateEvidence> |
- | Post eval gate evidence. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "TrainingStatus"
}
TurnSegmentInputOne context, model-action, or environment-observation segment accepted by training.5 fields
Type: object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
role |
yes | String |
- | Role. A text string. |
content |
yes | String |
- | Content. A text string. |
kind |
no | any |
enum "context", "action", "observation" | Kind. |
tool_call_id |
no | String |
- | Tool call ID. A text string. |
warning_prefix_len |
no | NonNegativeInteger |
- | Warning prefix len. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::TurnSegment",
"x-kiln-unknown-field-policy": "accepted_and_ignored"
}
TurnSegmentOutputOne normalized trajectory segment returned by Kiln.5 fields
Type: object. Constraints: closed object.
| Field | Required | Type | Constraints and default | Description |
|---|---|---|---|---|
role |
yes | String |
- | Role. A text string. |
content |
yes | String |
- | Content. A text string. |
kind |
yes | any |
enum "context", "action", "observation" | Kind. |
tool_call_id |
no | String |
- | Tool call ID. A text string. |
warning_prefix_len |
no | NonNegativeInteger |
- | Warning prefix len. A whole number greater than or equal to zero. |
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "kiln_train::TurnSegment"
}
UnitIntervalA number from 0 through 1, inclusive.0 fields
Type: number. Constraints: minimum 0; maximum 1.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "f32 | f64"
}
Vec_TrainingStatusAll training statuses Kiln currently retains.0 fields
Type: array<TrainingStatus>.
Kiln contract annotations
These machine-readable annotations are copied exactly from this schema node.
{
"x-kiln-field-schema-status": "complete",
"x-kiln-rust-type": "Vec<TrainingStatus>"
}