Challenge Baseline Model logo

Challenge Baseline Model

OrganizationPopular
AgibotTech
challenge-baseline-model

Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's local checkpoints path, install deps, and start the inference agent. Trigger: When the user asks to "拉取 baseline 模型", "下载推理代码/权重", "搭一个 baseline", "clone the inference repo", "download ckpts", "set up the baseline model", "跑起来 baseline", "provision the baseline", or hands over a repo URL to stand up an inference server. Load even on light phrasings: "部署一下 demo", "部署 demo", "跑个 demo", "deploy a/the demo", "下载一下 baseline", "下载 baseline", "拉一下 baseline".

Overview

PublisherAgibotTech
Repositorygenie_sim
Skill namechallenge-baseline-model
Stars
1.4K
Forks
119
Bundled files
1
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 1 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by AgibotTech on GitHub. Read the source before you install it.

Installation

Install the Challenge Baseline Model AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/AgibotTech/genie_sim.git /tmp/genie_sim
mkdir -p .claude/skills
cp -r /tmp/genie_sim/source/geniesim_benchmark/skills/robocoliseum/challenge-baseline-model .claude/skills/challenge-baseline-model
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Challenge Baseline Model in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Challenge Baseline Model on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Challenge Baseline Model is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

challenge-baseline-model — Provision & run the baseline inference model

End-to-end setup of a contestant inference model: clone code → download checkpoints → install deps → run agent. Once running, the agent serves a Simulation Challenge job — hand off to challenge-run-agent for the launch contract and challenge-inference-protocol for the obs/action wire format.

⚠️ The CONFIG block below holds DEBUG/example values (provided for bring-up). Replace the repo URL, branch, and checkpoint specs with the official ones when ready — everything downstream reads from these variables, so it's a single-place edit.


CONFIG — edit these (current = debug example)

bash
# --- code ---
REPO_URL="https://github.com/Anonymous-694/ACoT-VLA.git"   # clone URL (strip GitHub /tree/<branch>)
REPO_BRANCH="agibot_world_challenge"
# Local clone target (= inference repo root). If the user doesn't specify a path, default to the
# current directory — i.e. assume you're already inside (or want the repo placed in) the cwd.
REPO_DIR="${REPO_DIR:-$(pwd)}"

# --- checkpoints ---
# Downloaded from ModelScope (agibot_world/GenieSim3.0-Dataset, checkpoints/<name>) via the bundled
# scripts/download_checkpoint.sh — NO rsync / SSH needed, only `pip install modelscope`.
# The downloader ships with this skill at scripts/download_checkpoint.sh and is also in the
# genie-sim repo at ./scripts/download_checkpoint.sh.
DL_CKPT="$(dirname "$0")/scripts/download_checkpoint.sh"   # or hard-code this skill's scripts/ path

# Which checkpoints to fetch. Each name maps to a board (see table below). Pull only what the job
# needs — list one or more of: instruction_and_robust_pi05 / manipulation_pi05 / spatial_pi05
CKPT_NAMES=(
  "instruction_and_robust_pi05"
  # "manipulation_pi05"
  # "spatial_pi05"
)

Checkpoint ↔ board map (config.board → ModelScope checkpoint name):

Job boardCheckpoint name (checkpoints/<name>)
instructioninstruction_and_robust_pi05
robustinstruction_and_robust_pi05
manipmanipulation_pi05
spatialspatial_pi05

Step 1 — Clone the inference code

bash
if [ -d "$REPO_DIR/.git" ]; then
  echo "repo exists at $REPO_DIR — fetching $REPO_BRANCH"
  git -C "$REPO_DIR" fetch origin "$REPO_BRANCH" && git -C "$REPO_DIR" checkout "$REPO_BRANCH" && git -C "$REPO_DIR" pull --ff-only
else
  git clone -b "$REPO_BRANCH" "$REPO_URL" "$REPO_DIR"
fi

(/tree/<branch> in a GitHub web URL just means that branch — clone the .git URL with -b.)

Step 2 — Download checkpoints (ModelScope)

Fetch each needed checkpoint into $REPO_DIR/checkpoints/<name> with the bundled download_checkpoint.sh. It pulls from ModelScope — no SSH/rsync, no password — only the modelscope CLI (pip install modelscope if missing).

bash
for name in "${CKPT_NAMES[@]}"; do
  "$DL_CKPT" "$name" "$REPO_DIR/checkpoints"
done

Each lands at $REPO_DIR/checkpoints/<name>/ (e.g. checkpoints/instruction_and_robust_pi05/). Single-board example:

bash
"$DL_CKPT" instruction_and_robust_pi05 "$REPO_DIR/checkpoints"

Script signature: download_checkpoint.sh [CHECKPOINT_NAME] [LOCAL_DIR] — valid names are instruction_and_robust_pi05 / manipulation_pi05 / spatial_pi05; output goes to <LOCAL_DIR>/<name>/. download_checkpoint.sh -h lists them.

Layout note: there's no step subdirparams/ (and assets/, _CHECKPOINT_METADATA) sit directly under checkpoints/<name>_pi05/. tunnel.sh selects the ckpt by board via PI05_BOARD and points at the _pi05-suffixed dirs directly (instruction/robustcheckpoints/instruction_and_robust_pi05, spatialcheckpoints/spatial_pi05, manipcheckpoints/manipulation_pi05), so just download into checkpoints/ and no symlink is needed. Override the resolved path with PI05_CKPT_DIR if your layout differs. See challenge-inference-protocol §3 for the per-board ckpt layout.

Step 3 — Install dependencies

bash
cd "$REPO_DIR"
uv sync            # or: pip install -e packages/openpi-client && pip install -r requirements

Step 4 — Run the inference agent

Needs a live job (challenge-submit-jobJOB_UUID, TUNNEL_ENDPOINT) and CHALLENGE_TOKEN. Pick the board to match the job's config.board:

bash
[ -f ~/.simubotix-challenge.env ] && . ~/.simubotix-challenge.env
cd "$REPO_DIR"
PI05_BOARD=instruction ./scripts/tunnel.sh 0 "$JOB_UUID" "$TUNNEL_ENDPOINT"

Verify it reaches state -> RUNNING, then cases stream in. For concurrency, GPU pinning, and the drain/exit lifecycle, follow challenge-run-agent. For decoding what flows over the wire, see challenge-inference-protocol.

VRAM footprint & packing multiple instances on one GPU

A single pi05 inference service uses < 8 GB of VRAM at runtime, so a 24 GB card (e.g. RTX 4090) fits at most 3 services concurrently (3 is the practical max for pi05 — more will OOM under load). Pass the same GPU index as the first arg to each tunnel.sh and launch them as separate processes (different JOB_UUIDs):

bash
PI05_BOARD=instruction ./scripts/tunnel.sh 0 "$JOB_UUID_A" "$TUNNEL_ENDPOINT" &
PI05_BOARD=instruction ./scripts/tunnel.sh 0 "$JOB_UUID_B" "$TUNNEL_ENDPOINT" &
PI05_BOARD=instruction ./scripts/tunnel.sh 0 "$JOB_UUID_C" "$TUNNEL_ENDPOINT" &

The reference tunnel.sh already sets XLA_PYTHON_CLIENT_PREALLOCATE=false and XLA_PYTHON_CLIENT_ALLOCATOR=platform (on-demand allocation, good for sharing), but it hardcodes XLA_PYTHON_CLIENT_MEM_FRACTION=0.48 (≈11.5 GB per process) — too high to pack three.

Derive the per-process cap from the concurrency the user asks for, instead of a fixed number. The user tells you how many services they want on one GPU (call it N, max 3 for pi05 on 24 GB); split the GPU evenly, keeping ~10% headroom:

mem_fraction = 0.9 / N      # clamped to [0.10, 0.90], then leave PREALLOCATE=false
User-requested N (per GPU)XLA_PYTHON_CLIENT_MEM_FRACTIONper-process cap on 24 GB
10.90~21.6 GB (effectively uncapped)
20.45~10.8 GB
3 (max)0.30~7.2 GB

N > 3 on a single 24 GB card is not supported for pi05 — runtime usage (~8 GB each) overruns the card even though the fraction math would compute a smaller ceiling.

Since one service only touches < 8 GB at runtime and PREALLOCATE=false, the fraction is just a ceiling — sizing it to 0.9/N reserves an even slice per neighbor without wasting memory.

Make tunnel.sh compute this from a concurrency env var (honor an explicit override if set):

bash
# in scripts/tunnel.sh, replacing the hardcoded `export XLA_PYTHON_CLIENT_MEM_FRACTION=0.48`
N=${PI05_PARALLELISM:-1}                       # services sharing this GPU (from the user's request)
frac=$(awk -v n="$N" 'BEGIN{f=0.9/n; if(f>0.9)f=0.9; if(f<0.1)f=0.1; printf "%.2f", f}')
export XLA_PYTHON_CLIENT_MEM_FRACTION=${XLA_PYTHON_CLIENT_MEM_FRACTION:-$frac}

Then launch N services on the same GPU index, telling each how many share the card:

bash
N=3
for i in $(seq 1 "$N"); do
  PI05_PARALLELISM=$N PI05_BOARD=instruction \
    ./scripts/tunnel.sh 0 "${JOB_UUIDS[$i]}" "$TUNNEL_ENDPOINT" &
done

(PI05_PARALLELISM is the divisor; an explicit XLA_PYTHON_CLIENT_MEM_FRACTION=... still wins if you want to override the computed value for a specific launch.)


Notes

  • Repo path default: if the user doesn't give an inference-code path, REPO_DIR defaults to the current directory ($(pwd)) — assume you're already in (or want the repo in) the cwd. Override by exporting REPO_DIR or editing the CONFIG line.
  • Swapping to the official model: edit only the CONFIG block (repo URL/branch + CKPT_NAMES). Add manipulation_pi05 / spatial_pi05 to CKPT_NAMES to fetch those boards.
  • Idempotent: Step 1 re-fetches if the repo already exists; Step 2's modelscope download caches/resumes, so re-running continues rather than restarting.
  • No SSH needed: checkpoints come from ModelScope over HTTP — the only prerequisite is pip install modelscope. Downloads can be large; run Step 2 with run_in_background if driving from the assistant.
  • One service < 8 GB VRAM: a 24 GB GPU (RTX 4090) hosts at most 3 pi05 services at once. Don't hardcode the mem fraction — derive it from the concurrency the user asks for: XLA_PYTHON_CLIENT_MEM_FRACTION = 0.9 / N (N = services per GPU, max 3; 2→0.45, 3→0.30), keep PREALLOCATE=false. tunnel.sh reads this from PI05_PARALLELISM. See Step 4's VRAM footprint note.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Challenge Baseline Model AI skill do?

Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's local checkpoints path, install deps, and start the inference agent. Trigger: When the user asks to "拉取 baseline 模型", "下载推理代码/权重", "搭一个 baseline", "clone the inference repo", "download ckpts", "set up the baseline model", "跑起来 baseline", "provision the baseline", or hands over a repo URL to stand up an inference server. Load even on light phrasings: "部署一下 demo", "部署 demo", "跑个 demo", "deploy a/the d...

Why use Challenge Baseline Model on TypingMind?

Because you install it once and use it with any model. Challenge Baseline Model is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Challenge Baseline Model in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/AgibotTech/genie_sim/tree/main/source/geniesim_benchmark/skills/robocoliseum/challenge-baseline-model. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Challenge Baseline Model?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Challenge Baseline Model?

As many as you like. As long as a model supports skills, you can use Challenge Baseline Model with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Challenge Baseline Model AI skill free?

It is published on GitHub by AgibotTech. Check the repository for licensing terms. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇