evo-jax-io

SkillFiles & storage

Handles loading problem.json, reading .npy/.npz input files into JAX arrays, and saving JAX array results back to .npy files with proper numpy conversion.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the evo-jax-io skill

What this skill tells your AI

The instructions your AI receives, as published by openlair/openskill in tasks-evolved/jax-computing-basics/environment/skills/evo-jax-io/SKILL.md and read by ahel’s review.

All file I/O for JAX computation tasks: parsing problem.json, loading numpy/npz data files and converting to JAX arrays, and safely serializing JAX arrays to .npy output files.

Quick Start

import sys
sys.path.insert(0, '/app/environment/skills/evo-jax-io/scripts')
from io_utils import load_problem_json, load_input_data, save_jax_array

# Load task definitions
tasks = load_problem_json('/app/problem.json')

# Load input data (.npy returns JAX array, .npz returns dict of JAX arrays)
data = load_input_data('/app/data/x.npy')       # single JAX array
data = load_input_data('/app/data/logistic.npz') # dict of JAX arrays

# Save result
save_jax_array('/app/basic_reduce.npy', result_array)

Key Functions

load_problem_json(path: str) -> list

Load and parse problem.json. Returns list of task dicts with keys: id, description, input, output.

load_input_data(file_path: str) -> JAX array or dict

Load .npy or .npz file. For .npy: returns single JAX array. For .npz: returns dict mapping names to JAX arrays.

save_jax_array(path: str, jax_array) -> None

Safely save JAX array to .npy file using np.asarray() for proper conversion. Creates output directory if needed. Must be called outside jax.jit boundaries.

Domain Knowledge

  • JAX has no native disk I/O; always load with numpy then convert with jnp.asarray()
  • JAX defaults to float32 precision; loaded float64 arrays get downcast unless jax_enable_x64 is True
  • For saving: np.asarray(jax_array) is preferred over np.array() to avoid unnecessary copies
  • Never call np.save() inside jax.jit - Tracer objects cause ConcretizationTypeError
  • .npz files are loaded with np.load() which returns NpzFile dict-like object

Signals

GitHub stars
89
Forks
4
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
evo-jax-io
Source
github.com/openlair/openskill