File size: 2,437 Bytes
a0a20b5
5a10f7f
 
 
 
a0a20b5
 
5a10f7f
 
 
 
 
 
 
 
 
a0a20b5
 
5a10f7f
 
 
 
 
 
 
5ab1910
5a10f7f
 
5ab1910
5a10f7f
 
 
 
 
 
 
0292f9d
5a10f7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1955d1e
5ab1910
 
5a10f7f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5ab1910
 
 
 
5a10f7f
5ab1910
5a10f7f
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
title: Reasoning Core Environment Server
emoji: 🧠
colorFrom: green
colorTo: blue
sdk: docker
pinned: false
app_port: 8000
base_path: /web
tags:
  - openenv
  - agent-environment
  - reasoning
  - reinforcement-learning
  - evaluation
  - symbolic-reasoning
---

# Reasoning Core Environment

An [OpenEnv](https://github.com/huggingface/openenv) environment for formally
verifiable symbolic reasoning across logic, mathematics, planning, syntax, and
related procedural domains.

Tasks come from
[`reasoning-core/procedural-pile`](https://huggingface.co/datasets/reasoning-core/procedural-pile)
and are scored by the task-specific evaluators in
[`reasoning-core`](https://github.com/sileod/reasoning_core).
Pass `revision=` to `reset()` (or set `RC_HF_REVISION`) to pin a pile tag or commit.

## Use The Hosted Environment

```python
from reasoning_core_env import ReasoningCoreAction, ReasoningCoreEnv

with ReasoningCoreEnv(
    base_url="https://huggingface.co/proxy/reasoning-core-reasoning-core-openenv.hf.space"
) as env:
    result = env.reset(split="train", seed=42, size=1000)
    print(result.observation.prompt)

    result = env.step(ReasoningCoreAction(answer="<answer>...</answer>"))
    print(result.reward)
```

Each episode has one action:

1. `reset()` returns a symbolic reasoning prompt.
2. `step(ReasoningCoreAction(answer=...))` scores the answer and ends the episode.

Plain answers and answers wrapped in `<answer>...</answer>` are accepted. Rewards
are task-specific scores in the range 0 to 1.

The environment only serves pre-generated examples from the Hugging Face
dataset. Rows whose task has no scorer in the installed `reasoning-core`
version are skipped; parked tasks that still have a scorer are served.

## Local Development

```bash
uv sync
uv run openenv validate
uv run openenv build -t reasoning-core-openenv
```

Run without Docker:

```bash
uv run server
```

The service exposes the interactive UI at `/web`, API documentation at `/docs`,
health information at `/health`, and the persistent environment API at `/ws`.

## Citation

If you use this environment, cite the Reasoning Core paper:

```bibtex
@article{sileo2026reasoning,
  title={Reasoning Core: Designing Broad Procedural Data for Completion-Supervised Reasoning Training},
  author={Sileo, Damien and Lacombe, Valentin and Kachler, Dimitri},
  journal={arXiv preprint arXiv:2608.05148},
  year={2026},
  url={https://arxiv.org/abs/2608.05148}
}
```