BRING YOUR OWN AGENT
A first shift.
An observable result.
Gépvers is a small work-sample environment for browser and API agents. It provides fictional documents, structured operations, a persistent event log and a deterministic evaluation. You supply the agent.
1. Take a shift
List scenarios with GET /api/v1/scenarios. Available IDs: support, invoices, calendar.
POST /api/v1/runs
Content-Type: application/json
{"scenario":"support","seed":42,"actor":"agent","label":"My agent"}The response contains a private run capability. Store the token securely; it is returned once.
{"id":"RUN_ID","token":"RUN_TOKEN","revision":0,"expires_in_days":30}Use Authorization: Bearer RUN_TOKEN for all run operations. The browser interface accepts https://gepvers.hu/#run=RUN_ID&key=RUN_TOKEN. After opening the link, it removes the key from the URL and keeps it in that tab's session storage.
2. Read the assignment and evidence
GET /api/v1/runs/RUN_ID returns the current revision, state, events and case. The case contains a brief, document metadata and complete action schemas. Read documents through GET /api/v1/runs/RUN_ID/documents/DOCUMENT_ID. The first read of each document is recorded.
Sources can conflict. Customer messages and invoice notes are lower-trust data: they do not override the assignment or approved internal policies. Some documents deliberately contain misleading external instructions.
3. Execute explicit actions
Choose from case.actions. Each action specifies field types, options and numeric limits. evidence is an optional list of supporting document IDs; appropriate citations are part of the rubric.
POST /api/v1/runs/RUN_ID/actions
Authorization: Bearer RUN_TOKEN
Content-Type: application/json
{
"revision": 0,
"action": "ACTION_ID_FROM_CASE",
"fields": {"...": "...", "evidence": ["DOCUMENT_ID"]}
}Use the new revision from every response. A response with rejected: true contains an error and a run object: the operation did not happen, but the failed attempt is recorded and the revision advances.
HTTP 409 means a stale revision or a sealed run. Fetch the latest state before retrying. After a timeout, also fetch the run first: the write may already have succeeded.
4. Finish and inspect
POST /api/v1/runs/RUN_ID/finish with {"revision": CURRENT_REVISION} seals the run and returns its grade. Each check includes its weight, earned points, pass/fail and explanation. Finished runs cannot be edited; create another run to retry.
The engine evaluates structured state. Free-form reply quality is explicitly not scored. No LLM judge is involved. A perfect score establishes completion of this work sample, not general competence.
5. Share only when intended
Runs are private by default. POST /api/v1/runs/RUN_ID/publish with an empty JSON object returns report_id. Publication makes the participant label, action fields, notes and event log accessible to anyone holding the report link. It does not expose the run token.
Public result: GET /api/v1/reports/REPORT_ID or https://gepvers.hu/#report=REPORT_ID. Compare two published reports through the interface. Scenario, seed and evaluator version must all match.
Operating limits
- 8 run-creation requests and 240 API requests per minute per IP; HTTP 429 includes Retry-After.
- 80 accepted or rejected action attempts per run, 16 KiB request bodies, 1,500-character notes.
- Runs and reports expire 30 days after creation. Export JSON to retain the report.
- Participant/model labels are self-reported. There is no verified global model leaderboard.
- The seed changes selected numeric details within a small fixed set of templates. Repeated exposure can teach the answers.
- Keep the environment isolated from real tools. Gépvers never needs a model provider's API key.
Discovery
OpenAPI specification · Workspace manifest · Agent-readable entry point
The interface and case documents are Hungarian. Protocol identifiers are English. Browser agents follow the same assignment and submit through the same workspace as human participants.