Skip to content
Merged
Show file tree
Hide file tree
Changes from 19 commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
cb63a92
Init
fsiino-nvidia Sep 19, 2025
452c8e1
Rename script, pretty print table, add error handling
fsiino-nvidia Sep 20, 2025
82f6930
Copyright
fsiino-nvidia Sep 22, 2025
07ca159
Enforce license and domain in resource server yaml
fsiino-nvidia Sep 23, 2025
23d59e3
Extract training license, use enum for domains
fsiino-nvidia Sep 24, 2025
443cb2c
Update script
fsiino-nvidia Sep 24, 2025
c1c2e72
Simplify domain check
fsiino-nvidia Sep 24, 2025
011b22b
Update readme
fsiino-nvidia Sep 24, 2025
1a9b2b5
Recall hf_utils
fsiino-nvidia Sep 24, 2025
28d998d
Test precommit order
fsiino-nvidia Sep 24, 2025
b847d19
Revert precommits, remove extra readme section
fsiino-nvidia Sep 24, 2025
7ffa731
Test idempotent write
fsiino-nvidia Sep 24, 2025
feb0e22
Make sorting consistent
fsiino-nvidia Sep 24, 2025
c3f4104
More sorting conflicts
fsiino-nvidia Sep 24, 2025
a902713
Merge remote-tracking branch 'github/main' into fsiino/resource-serve…
fsiino-nvidia Sep 24, 2025
a5acbcb
Simplify
fsiino-nvidia Sep 24, 2025
4e292f8
Add docstring
fsiino-nvidia Sep 24, 2025
d5f2448
Empty commit for tests
fsiino-nvidia Sep 24, 2025
eb19f4f
Strip domain from non-resource server
fsiino-nvidia Sep 24, 2025
08ef6d9
Change google_search to agent
fsiino-nvidia Sep 24, 2025
86dde55
Merge remote-tracking branch 'github/main' into fsiino/resource-serve…
fsiino-nvidia Sep 28, 2025
6296eb3
Remove name
fsiino-nvidia Sep 28, 2025
926f517
Make path a link, include dataset usages
fsiino-nvidia Sep 30, 2025
e41b627
Use raw html links
fsiino-nvidia Sep 30, 2025
a4433cd
Detect changes to limit script run
fsiino-nvidia Sep 30, 2025
20909af
Run readme update on staged config file changes
fsiino-nvidia Sep 30, 2025
1739dd4
Remove git add
fsiino-nvidia Sep 30, 2025
dff9fb9
Merge branch 'main' into fsiino/resource-server-organization
bxyu-nvidia Oct 8, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,8 @@ repos:
files: '.*\/[^\/]*_[^\/]*\.md$'
exclude: '^\.github/'
types: [file]
- id: update-readme-table
name: "Update resource server list in README"
entry: python scripts/update_resource_servers.py
language: system
files: ^README\.md$
23 changes: 23 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
- [NeMo-Gym](#nemo-gym)
- [Setup](#setup)
- [Helpful development commands](#helpful-development-commands)
- [Table: Resource Server Organization](#table-resource-server-organization)
- [How To: Run a simple agent](#how-to-run-a-simple-agent)
- [TL;DR](#tldr)
- [Introduction](#introduction)
Expand Down Expand Up @@ -82,6 +83,28 @@ ng_test_all
```


# Table: Resource Server Organization
<!-- START_RESOURCE_TABLE -->
| Domain | Resource Server Name | Config Path | License |
| --------------------- | --------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------- |
| agent | Multiverse Math Hard | `resources_servers/multiverse_math_hard/configs/multiverse_math_hard.yaml` | Apache 2.0 |
| agent | Simple Weather | `resources_servers/simple_weather/configs/simple_weather.yaml` | None |
| agent | Stateful Counter | `resources_servers/stateful_counter/configs/stateful_counter.yaml` | Apache 2.0 |
| agent | Workbench | `resources_servers/workbench/configs/workbench.yaml` | Apache 2.0 |
| coding | Comp Coding | `resources_servers/comp_coding/configs/comp_coding.yaml` | Apache 2.0 |
| instruction_following | Google Search | `resources_servers/google_search/configs/google_search.yaml` | Apache 2.0 |
| instruction_following | Instruction Following | `resources_servers/instruction_following/configs/instruction_following.yaml` | Apache 2.0 |
| instruction_following | Multineedle | `resources_servers/multineedle/configs/multineedle.yaml` | Apache 2.0 |
| knowledge | Equivalence Llm Judge | `resources_servers/equivalence_llm_judge/configs/equivalence_llm_judge.yaml` | None |
| knowledge | Mcqa | `resources_servers/mcqa/configs/mcqa.yaml` | Apache 2.0 |
| math | Library Judge Math | `resources_servers/library_judge_math/configs/bytedtsinghua_dapo17k.yaml` | Apache 2.0 |
| math | Library Judge Math | `resources_servers/library_judge_math/configs/dapo17k.yaml` | Apache 2.0 |
| math | Library Judge Math | `resources_servers/library_judge_math/configs/library_judge_math.yaml` | Creative Commons Attribution 4.0 International |
| math | Library Judge Math | `resources_servers/library_judge_math/configs/math_stack_overflow.yaml` | Creative Commons Attribution-ShareAlike 4.0 International |
| math | Python Math Exec | `resources_servers/python_math_exec/configs/python_math_exec.yaml` | Apache 2.0 |
<!-- END_RESOURCE_TABLE -->


# How To: Run a simple agent
Reading time: 10 mins
Date: Mon Aug 04, 2025
Expand Down
2 changes: 1 addition & 1 deletion nemo_gym/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ def display_server_instance_info(self) -> None:

for i, inst in enumerate(self._server_instance_display_configs, 1):
print(f"[{i}] {inst.process_name} ({inst.server_type}/{inst.name})")
pprint(inst.model_dump())
pprint(inst.model_dump(mode="json"))
print(f"{'#' * 100}\n")

def poll(self) -> None:
Expand Down
25 changes: 25 additions & 0 deletions nemo_gym/config_types.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from enum import Enum
from typing import Any, ClassVar, Dict, List, Literal, Optional, Union

from omegaconf import DictConfig, OmegaConf
Expand Down Expand Up @@ -110,13 +111,37 @@ def check_train_validation_sets(self) -> "DatasetConfig":
########################################


class Domain(str, Enum):
MATH = "math"
CODING = "coding"
AGENT = "agent"
KNOWLEDGE = "knowledge"
INSTRUCTION_FOLLOWING = "instruction_following"
LONG_CONTEXT = "long_context"
SAFETY = "safety"
GAMES = "games"
OTHER = "other"


class BaseServerConfig(BaseModel):
host: str
port: int


class BaseRunServerConfig(BaseServerConfig):
entrypoint: str
domain: Optional[Domain] = None # Only required for resource servers

@model_validator(mode="after")
def validate_domain(self) -> "BaseRunServerTypeConfig":
name = getattr(self, "name", None)
if name and self.name.endswith("_resources_server"):
assert self.domain is not None, "A domain is required for resource servers."
else:
if hasattr(self, "domain"):
del self.domain

return self


class BaseRunServerInstanceConfig(BaseRunServerConfig):
Expand Down
2 changes: 1 addition & 1 deletion resources_servers/comp_coding/configs/comp_coding.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ comp_coding:
resources_servers:
comp_coding:
entrypoint: app.py

domain: coding
comp_coding_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ equivalence_llm_judge:
# group is returned; otherwise, the entire last match is used.
# Example: "^Answer:\\s*(.*)$"
response_extract_regex: null

domain: knowledge
equivalence_llm_judge_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
1 change: 1 addition & 0 deletions resources_servers/google_search/configs/google_search.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ google_search:
resources_servers:
google_search:
entrypoint: app.py
domain: instruction_following
google_search_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ instruction_following:
resources_servers:
instruction_following:
entrypoint: app.py
domain: instruction_following
instruction_following_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ library_judge_math:
input: []
}
should_use_judge: false
domain: math
library_judge_math_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
1 change: 1 addition & 0 deletions resources_servers/library_judge_math/configs/dapo17k.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ library_judge_math:
input: []
}
should_use_judge: false
domain: math
library_judge_math_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ library_judge_math:
input: []
}
should_use_judge: true
domain: math
library_judge_math_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ library_judge_math:
input: []
}
should_use_judge: true
domain: math
library_judge_math_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
1 change: 1 addition & 0 deletions resources_servers/mcqa/configs/mcqa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ mcqa:
resources_servers:
mcqa:
entrypoint: app.py
domain: knowledge
mcqa_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
1 change: 1 addition & 0 deletions resources_servers/multineedle/configs/multineedle.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ multineedle_resources_server:
resources_servers:
multineedle:
entrypoint: app.py
domain: instruction_following
multineedle_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ multiverse_math_hard:
resources_servers:
multiverse_math_hard:
entrypoint: app.py
domain: agent
multiverse_math_hard_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ python_math_exec:
python_math_exec:
entrypoint: app.py
max_execution_time: 10
domain: math
python_math_exec_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ simple_weather:
resources_servers:
simple_weather:
entrypoint: app.py
domain: agent
simple_weather_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ stateful_counter_resources_server:
resources_servers:
stateful_counter:
entrypoint: app.py
domain: agent
stateful_counter_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
1 change: 1 addition & 0 deletions resources_servers/workbench/configs/workbench.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ workbench:
resources_servers:
workbench:
entrypoint: app.py
domain: agent
workbench_simple_agent:
responses_api_agents:
simple_agent:
Expand Down
Loading