MCPcopy Index your code
hub / github.com/ev-sys/evsys-sdk

github.com/ev-sys/evsys-sdk @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
1,697 symbols 7,119 edges 142 files 412 documented · 24%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://github.com/ev-sys/evsys-sdk/raw/main/assets/logo.svg" alt="EvSys" width="300">

Infrastructure for thousands of task-specialised models that learn continuously from every interaction.

| Documentation | Quickstart | Autoresearch | Architecture | Whitepaper - in depth |

Join our community on Slack


About

Easily create continually-learning models on your own data.

evsys-sdk turns your favourite coding agent into a model lab. Every training experiment is a single declarative YAML; a coding agent - Claude Code, Codex, anything - writes a config, launches it on a Tinker-compatible backend, reads the structured result, and writes the next one. Run a series of educated experiments and you land a small, task-specific model that beats frontier on your task at a fraction of the cost.

We believe the future of AI is not a handful of generalist models, but thousands of models adapted for every task, continually learning from every interaction. Realising that needs a new layer of infrastructure - the autoresearch layer that lets a system discover what to learn, train on it, and ship it. evsys-sdk is the first step: it standardises and centralises every experiment so a coding agent always has the context of what's been tried, while staying flexible enough to run any algorithm on any data.

evsys-sdk is powerful with:

  • One declarative artifact - every experiment is a single ExperimentConfig (YAML); nothing hidden in scripts
  • SFT, RL, and self-distillation (SDFT) behind one config shape and one runner
  • Autoresearch - coding agents launch experiments, learn from the results, and write the next hypothesis
  • Multi-stage recipes (SFT → RL) and continual learning - weights chain across stages, so models accumulate skills instead of restarting from base
  • In-loop validation + held-out benchmarks, scored by verifiers and metrics you register
  • Agent harnesses - train a model inside your own multi-turn tool-use harness, so it learns to use your tools
  • Structured per-run logging - metrics, rollouts, predictions, hypothesis & conclusion on disk (plus an optional dashboard)

evsys-sdk is flexible and easy to use with:

  • Tinker-compatible backends - train on anything that speaks the Tinker protocol: Tinker, Fireworks, TML, SkyRL - one line in the config switches provider; plus local (TRL + peft on your own GPU) and mock (tests)
  • Eight registries - algorithms, backends, transforms, verifiers, metrics, data stores, log stores, inference clients - register your own with a one-line @register_* decorator, no library fork
  • A coding-agent plugin (Claude Code + Cursor) - one shared skills/ set drives the whole loop; install it into either agent from this repo
  • The evsys CLI - validate, run, list, schema, init-project, benchmark, eval
  • LoRA on any Hugging Face model
  • --dry runs - a few steps per stage with rollout logging, to eyeball the data + rollouts before a full run

Getting Started

Requires Python 3.12+ and uv.

git clone https://github.com/ev-sys/evsys-sdk.git
cd evsys-sdk
uv sync
source .venv/bin/activate

Run the no-GPU, no-network hello world:

python examples/01_local_mock_sft.py

For real training, export your backend key and drive it from a config:

export TINKER_API_KEY=...
evsys run config.yaml          # validate, expand, train, score, record
evsys run config.yaml --dry    # a few steps per stage, with rollout logging

Discover what's available and inspect any extension's params:

evsys list algorithms          # sft · rl · sdft · ...
evsys schema algorithm sft

Visit the documentation to learn more:

Use it as a coding-agent plugin

The Python SDK is installed with pip; the agent context — a single set of skills in skills/ — is installed separately through your coding agent's own plugin flow. There are no subagents; everything is a skill, so the same source works in both Claude Code and Cursor. The skills drive the autoresearch loop: read the history of past experiments (hypotheses, conclusions, metrics), decide the next educated experiment, scaffold the config plus any custom verifier / metric / transform, launch it, and write back a conclusion.

Skill What it does
autoresearch-launch Decide the next training experiment and launch it.
set-up-research-project Scaffold / migrate a repo into the research-project layout.
using-the-sdk Read/write experiments, datasets, benchmarks, and metrics via the SDK.

Install into Claude Code

Add the repo as a plugin marketplace, then install the plugin:

/plugin marketplace add ev-sys/evsys-sdk
/plugin install evsys-sdk@evsys-sdk

Or, to load it in place from a local checkout (no marketplace):

claude --plugin-dir /path/to/evsys-sdk

Install into Cursor

The same repo is a Cursor plugin (.cursor-plugin/). Either:

  • Plugin import — Customize → Plugins → import ev-sys/evsys-sdk as a git marketplace (one-click, uses .cursor-plugin/skills/); or
  • Drop-in skills — copy or symlink the skill folders into a directory Cursor scans (~/.cursor/skills/ global, or ./.cursor/skills/ per project):

bash git clone https://github.com/ev-sys/evsys-sdk.git mkdir -p ~/.cursor/skills cp -r evsys-sdk/skills/* ~/.cursor/skills/

Cursor also reads Claude's skill directories (.claude/skills/, ~/.claude/skills/), so a Claude install is discovered by Cursor too.

Both plugin manifests point at the same skills/ directory — edit a skill once and both agents pick it up. After installing, invoke a skill in chat with /autoresearch-launch (or let the agent pick it up automatically), or review what loaded under the agent's skills/plugins settings.

Contributing

We welcome contributions and collaborations. The dev workflow:

uv sync
.venv/bin/python -m pytest tests/ -q     # the full suite must stay green
.venv/bin/python -m ruff check .

See CLAUDE.md for repo conventions - the registry + {kind, params} extension pattern and the two skills directories - and docs/DESIGN.md for the layout + protocol rationale.

Contact

  • Docs & guides: https://ev-sys.github.io/evsys-sdk/
  • Issues & feature requests: GitHub Issues

Core symbols most depended-on inside this repo

get
called by 295
src/evsys_sdk/registry.py
run
called by 102
tests/harbor_echo_agent.py
_call
called by 38
src/evsys_sdk/store.py
items
called by 31
src/evsys_sdk/registry.py
from_dir
called by 29
src/evsys_sdk/benchmark.py
run
called by 27
src/evsys_sdk/training/loop.py
forward_step_metrics
called by 25
src/evsys_sdk/step_metrics.py
upload_benchmark
called by 18
src/evsys_sdk/benchmark_upload.py

Shape

Function 781
Method 632
Class 284

Languages

Python100%

Modules by API surface

tests/test_experiment.py91 symbols
src/evsys_sdk/store.py46 symbols
tests/test_training_callbacks.py42 symbols
src/evsys_sdk/registry.py41 symbols
tests/test_training_tinker_backend.py40 symbols
tests/test_algorithms_sdft.py37 symbols
tests/test_dashboard_client.py36 symbols
tests/test_benchmark.py34 symbols
tests/test_data_types.py33 symbols
tests/test_algorithms_sft.py33 symbols
src/evsys_sdk/experiment.py33 symbols
src/evsys_sdk/training/backend.py32 symbols

For agents

$ claude mcp add evsys-sdk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact