A model-agnostic Research Operating System: a framework that sits between you and any LLM and makes a less powerful model perform significantly better on complex Computer Science research tasks by supplying it with structured, reusable cognitive skills instead of relying on its native reasoning alone.
ResearchOS is not an operating system in the Windows/Linux sense. It is an ordinary Python application whose name is an architectural metaphor: it performs OS-like roles for the LLM — scheduling (which skill runs when), memory management (what enters the context window vs. persists in the knowledge base), process isolation (one methodology step at a time, with budgets), and drivers (model adapters, so the same skills run on Claude, GPT, Gemini, or local models).
User → Research OS → LLM → Output
Externalized expert methodology (skills) + enforced verification + persistent structured memory > raw prompting — especially for small/medium models on long-horizon research work. The LLM never sees the whole problem: it sees one methodology step at a time, with exactly the context the skill declares, and its output is checked before the next step proceeds. Intelligence lives in the skills; the model supplies local reasoning only.
| Layer | Components |
|---|---|
| Interface | ros CLI, Python API |
| Kernel | TaskClassifier → Planner → SkillSelector → SkillComposer → session loop |
| Execution Engine | SkillInterpreter (state machine over SRL), PromptCompiler, VerificationEngine, ReflectionEngine, QualityEvaluator |
| Memory | KnowledgeBase (structured files), ContextPacker (token-budgeted), ResearchNotebook, ExperimentTracker |
| Model Adapters | Agent CLIs (Claude Code claude -p, Codex codex exec, Gemini CLI — no API key needed) and raw APIs via litellm (optional extra) |
Skills are written in SRL (Skill Representation Language): YAML validated against a JSON Schema, with typed inputs/outputs, step-by-step methodology with decision points, verification criteria, failure modes with recovery strategies, confidence estimation, memory reads/writes, and composition rules. See docs/03-srl-spec.md.
The library ships 24 skills in 5 packs: codebase/, literature/, experimentation/, writing/, meta/.
pip install -e .[dev]
pytest # everything runs against a deterministic mock adapter; no API key needed
ros skills list # browse the skill library
ros init myproject # create a knowledge base for a research project
ros ask "why does training diverge after epoch 3?" --backend claude-code
ros run bug-localization --input symptom="NPE in scheduler on empty queue"
ros status # project stage, hypotheses, open questionsThe full specification lives in docs/: architecture, component interactions, SRL spec, skill library, execution engine, memory, composition, example workflows, roadmap, future research, and limitations & expected gains.
ResearchOS doubles as a research artifact: eval/ contains task suites and an ablation runner (no-skills / no-verification / no-memory baselines) to measure whether skill scaffolding improves weaker LLMs.