graphjin-env

Use when setting up a training or evaluation loop against a GraphJin agent environment — running the container, reading /health, driving episodes hosted or step-by-step or with your own agent over MCP, splitting train from eval, exporting trajectories, and deciding whether two rewards can be compared.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/dosco/graphjin/graphjin-env
Any agent
npx skills add dosco/graphjin --skill graphjin-env
Clone the repo
git clone --depth 1 https://github.com/dosco/graphjin

Made for: Claude Code, Codex.

Per session 61 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,266 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00061 $0.01266
Opus 5 $0.00030 $0.00633
Sonnet 5 $0.00012 $0.00253
Haiku 4.5 $0.00006 $0.00127

Measured today against content hash 826e1f2e2c0e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

graphjin-env scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s localhost:8090/health
cmd/tmpl/skills/graphjin-env/SKILL.md · 113 lines

How it starts

The opening of the file, as written. The whole thing — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.

GraphJin Agent Environment

Use this skill when a user wants to train or measure an agent against a GraphJin environment: running the container, driving graded episodes, collecting trajectories, or interpreting a reward.

For creating and running evaluation suites against a project, use the graphjin-eval skill instead. This one is about the environment as a training target.

This skill deliberately states no task counts, no flag defaults and no measured figures. Those live in /health and at https://graphjin.com/environment/. Read them from the running server rather than from here — a skill that carries no facts cannot carry stale ones.

Rules

  • Read /health before anything else, and record it with any number you report. A reward is only comparable against another from the same world under the same contract. The fields that decide it: reward_version, reward_profile, dataset.catalog_hash, dataset.data_anchor, capabilities.suite_fingerprint, and build.version.
  • Check capabilities.catalog_match before a long run. If it is false, the suite's oracles were verified against a different schema and every episode is being graded against the wrong answers. If it is absent, there was nothing to compare.
  • Never compare an external-mode reward with a hosted one. An external agent's token use never reaches the server, so the efficiency term is unmeasured rather than zero.
  • Never present a small difference as a result. The same binary run twice against the same suite flips a meaningful number of tasks. Use training/measure.py, which prints a confidence interval and the resolution floor, and quote both.
  • A GJ_ENV_ variable the server does not read is a startup error, not a default. If the server refuses to start, read the error — it names the variable.
  • Without a temperature, a sampling group returns n identical answers. The stack pins sampling to zero. If a group comes back with identical rewards, check this before concluding anything about the model.
  • Never hand-edit eval/suite.yml, eval/suite.split.json, world-pack.json, or any file under .graphjin-evals/. Each carries a fingerprint something downstream compares against.
  • Never spend provider tokens without the user's approval. Commands that call a model require --yes and print the call count first; surface that preview.

Read the full file on GitHub · 113 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today First seen · 113 lines · 61 tokens per session scan A 826e1f2e2c0e

Subscribe to this mod's changes

graphjin-env is a skill published in the GitHub repository dosco/graphjin (3,157 stars, last pushed 2d ago), licensed Apache-2.0. It adds 61 tokens to every session and 1,266 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-02.