AgentClash Challenge Pack Tools And Sandbox
SkillFiles & storageUse when defining AgentClash challenge pack tool access, sandbox runtime needs, filesystem expectations, network policy, command execution, and secret references.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the AgentClash Challenge Pack Tools And Sandbox skill
What this skill tells your AI
The instructions your AI receives, as published by agentclash/agentclash in cli/internal/skills/snapshot/agentclash-challenge-pack-tools-sandbox/SKILL.md and read by ahel’s review.
Purpose
Define the native execution surface a challenge pack needs: pack-defined custom tools, broad tool policy, sandbox network/package/env settings, and safe secret references.
Use this skill only when a pack truly needs native files, tools, network, packages, or sandbox behavior. Keep the runtime surface narrow enough that failures are attributable to the agent, not to an over-broad environment.
Use When
- A challenge pack needs top-level
tools.custom. - The pack needs
version.tool_policy.allowed_tool_kinds. - The pack needs
version.sandboxfor network access, CIDR allowlists, environment variables, apt packages, or a sandbox template. - A coding agent needs exact source-backed YAML shapes without reading the AgentClash source repo.
- A reviewer needs to check that no raw secrets or unsupported tool kinds are being introduced.
Do Not Use When
- The pack is
prompt_evaland only needs prompt/final-output evaluation. - The task is workspace infrastructure setup with
agentclash infra tool ...; useagentclash-runtime-resources-setup. - The task is artifact declaration, scoring validators, LLM judges, validation/publish, or eval running; use the focused downstream skills.
Environment
Use hosted production for CLI examples unless the user intentionally targets a local or self-hosted backend.
export AGENTCLASH_API_URL="https://api.agentclash.dev"
Validation Commands
Validate after adding or changing tools, tool policy, or sandbox settings.
agentclash challenge-pack validate path/to/pack.yaml
agentclash challenge-pack validate path/to/pack.yaml --json
Human output prints Challenge pack is valid or Challenge pack has errors. Use --json for structured valid and errors fields.
Execution Mode Rules
prompt_eval packs cannot use challenge-pack tools or sandbox settings.
Do not include these in prompt_eval:
- top-level
tools version.tool_policyversion.sandbox
Use native when the task needs files, tool calls, network policy, extra packages, sandbox templates, file validators, directory checks, or code execution.
version:
number: 1
execution_mode: native
Tool Policy
version.tool_policy.allowed_tool_kinds accepts only these broad kinds:
version:
tool_policy:
allowed_tool_kinds:
- browser
- build
- data
- file
- network
Supported values are exactly browser, build, data, file, and network. Do not use shell; the current validator rejects it.
Use the narrowest set possible:
filefor reading/writing workspace files.buildfor build/test style operations.networkfor outbound HTTP or API access.browserfor browser interaction.datafor structured data access tools.
Pack-Defined Custom Tools
Challenge-pack custom tools live at top-level tools.custom, not under version.
tools:
custom:
- name: check_inventory
description: Check inventory for a SKU.
parameters:
type: object
properties:
sku:
type: string
required:
- sku
implementation:
primitive: http_request
args:
method: GET
url: "https://api.example.com/inventory/${sku}"
headers:
Authorization: "Bearer ${secrets.INVENTORY_API_KEY}"
Source-backed fields:
tools.custom[]entries are the supported pack-defined tool shape.nameshould be stable and unique in the pack.parametersmust be valid JSON Schema when provided. If omitted, validation defaults to an empty object schema, but authoring explicit parameters is clearer.implementationis required.- Non-
mockimplementations requireimplementation.primitive. - Non-
mockimplementations requireimplementation.args, andargsmust be a JSON/YAML object. implementation.primitivecannot equal the tool's ownname.- Tool delegation cycles are rejected, and delegation depth greater than 8 is rejected.
Mock tools are the only exception to primitive/args validation:
tools:
custom:
- name: fake_lookup
parameters:
type: object
implementation:
type: mock
Template Placeholders And Secrets
Template placeholders are validated inside implementation.args.
Allowed placeholder forms:
${sku}or${sku.id}whenskuis declared inparameters.properties.${parameters}for the full parameters object.${secrets.INVENTORY_API_KEY}for a runtime secret reference.
Rejected placeholder forms:
${missing}whenmissingis not declared inparameters.properties.${}empty placeholders.- unclosed placeholders such as
${sku.
Never paste raw secret values into YAML, chat, commits, or examples. Use secret names only. If a secret value is not already configured, ask the user to set it through the workspace secret flow without revealing the value in chat.
Sandbox Settings
version.sandbox is valid only for native packs.
version:
execution_mode: native
sandbox:
network_access: true
network_allowlist:
- 203.0.113.0/24
env_vars:
DATASET_MODE: fixture
API_BASE_URL: https://api.example.com
additional_packages:
- jq
- python3-venv
sandbox_template_id: codex
Source-backed sandbox fields:
network_access: boolean.network_allowlist: list of CIDR ranges. Hostnames such asapi.example.comare not valid allowlist entries.env_vars: string map. Keys must match[A-Za-z_][A-Za-z0-9_]*.additional_packages: apt-style package names.sandbox_template_id: optional template identifier string.
Keep network_access: false or omit sandbox network settings unless the case truly needs outbound network. If network is needed, use the smallest CIDR allowlist available.
Filesystem Expectations
version.filesystem exists as a raw map on the bundle model, but the current challenge-pack validator does not define a source-backed schema for it. Do not invent version.filesystem subfields in a skill-authored pack. Prefer explicit assets, case inputs, sandbox package/env settings, and scoring file evidence until the user or product docs provide an exact filesystem contract.
Use file-related behavior through:
version.assetsand caseinputs[].artifact_key.version.tool_policy.allowed_tool_kinds: [file].- scoring file validators that target
file:<post_execution_check_key>. version.evaluation_spec.post_execution_checksfor file or directory capture.
Compatibility Checklist
Before validating:
- Execution mode is
nativeiftools,tool_policy, orsandboxare present. allowed_tool_kindscontains onlybrowser,build,data,file, andnetwork.- No
shelltool kind is present. - Every custom tool has a stable
name, parameter schema,implementation.primitive, and objectimplementation.args, unless it is a deliberatetype: mocktool. - Every
${...}placeholder in tool args is declared as a parameter, is${parameters}, or starts with${secrets.}. - No raw secret values are present.
network_allowlistuses CIDR ranges.env_varskeys are valid environment variable names.additional_packagesnames are valid apt package names.- Native settings are backed by a smoke case that proves the environment actually works.
Common Validation Failures
- A
prompt_evalpack includestools,version.tool_policy, orversion.sandbox. version.tool_policy.allowed_tool_kindsincludesshell,code, or provider-specific tool names.allowed_tool_kindsis not an array of strings.- A non-mock custom tool omits
implementation.primitiveorimplementation.args. implementation.argsis a string/list instead of an object.- Tool args use unknown placeholders such as
${order_id}without declaringorder_idinparameters.properties. - A tool delegates to itself or creates a delegation cycle.
network_allowlistcontains a hostname instead of CIDR.env_varscontains a key likeapi-keythat is not a valid environment variable name.additional_packagesincludes an invalid apt package name.
Authoring Procedure
- Confirm whether
prompt_evalis enough. If yes, omit tools and sandbox. - If native behavior is required, set
version.execution_mode: native. - Add only the needed
allowed_tool_kinds. - Define
tools.customonly for pack-defined tools; use workspace infra skills for reusable workspace tools. - Write explicit JSON Schema parameters for each custom tool.
- Use
${parameter}and${secrets.KEY}placeholders inimplementation.args; never raw secrets. - Add
version.sandboxonly for real network/env/package/template requirements. - Add a smoke case that proves the tool or sandbox dependency is reachable.
- Run
agentclash challenge-pack validate ... --jsonand fix every returned field error. - Hand off to artifacts, scoring, or validation/publish skills.
Report Back Format
Execution mode:
Tool policy:
Custom tools:
- name:
primitive:
parameters:
secret references:
Sandbox:
Network:
Packages:
Filesystem/artifact dependencies:
Smoke case:
Validation command:
Validation result:
Ready for scoring/publish: <yes/no>
Open issues:
Related Skills
agentclash-runtime-resources-setupagentclash-challenge-pack-yaml-authoragentclash-challenge-pack-input-setsagentclash-challenge-pack-artifactsagentclash-challenge-pack-scoring-validatorsagentclash-challenge-pack-validation-publish
Signals
- GitHub stars
- 30
- Forks
- 2
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
agentclash-challenge-pack-tools-sandbox- Source
- github.com/agentclash/agentclash