Skip to content

System tools reference

This page lists every system tool implemented in MAS-Lab. For the rules that enable each tool, see System tools.

Tool Package Enablement Declaration aliases
activate_skill mas-library-skills implicit (spec.skills) or declared skill-access, skill_access
list_skill_files mas-library-skills with activate_skill —
read_skill_file mas-library-skills with activate_skill —
run_skill_script mas-library-skills implicit (skill scripts/, auto_inject) or declared run-skill-script
request_human_input mas-runtime declared only —
inform_user mas-runtime declared only —
create_subagent mas-library-standard declared only spawn_subagent

The skill tools require mas-library-skills. Without it, declaring one fails with an unknown system tool error.

Skill tools

activate_skill

Loads the full SKILL.md body of a catalog skill. Frontmatter is removed from the returned body, and bundled resources are listed.

Argument Type Required Notes
name string yes Constrained to registered skill names. Names already activated are dropped from the enum.

Implementation: mas.library.skills.plugins.sk_tools.SkillToolsPlugin.

list_skill_files

Lists the files in a skill directory, such as references, scripts, and assets.

Argument Type Required
skill string yes

read_skill_file

Reads one file from a skill directory.

Argument Type Required Notes
skill string yes
path string yes Relative to the skill directory, such as references/rules.md

run_skill_script

Runs a script from the skill's scripts/ directory with resource limits. Returns stdout, stderr, and the exit code.

Argument Type Required Notes
skill string yes
script string yes Plain filename, no path
args string[] no Positional arguments
timeout integer no Seconds; default 30, maximum 120
env object no Extra variables. Loader-control variables such as PATH and LD_PRELOAD are rejected.
stdin string no Text sent to the script's standard input

Implementation: mas.library.skills.plugins.sk_shell.RunSkillScriptPlugin.

User-communication tools

request_human_input

Asks the user a question and blocks the agent's turn until the question is resolved through the HITL side channel. The channel is an HITLContract, or the HITL resolver registry if no contract is provided.

Argument Type Required Notes
question string yes Up to max_question_length characters
question_type string no CONFIRM (default), FREE_FORM, MULTIPLE_CHOICE, MULTI_SELECT, FORM
choices string[] no Options for MULTIPLE_CHOICE and MULTI_SELECT questions
context_data object no Data displayed with the question
timeout number no Overrides the manifest default for one call
Manifest params Default Notes
timeout none (wait indefinitely) Default timeout for each call, in seconds
auto_resolve_decision approve Answer used when the host runs unattended (mas-ctl run-mas with auto-HITL, benchmarks).
max_question_length 20000 Also sets the schema advertised to the model

Implementation: mas.runtime.system_tools.RequestHumanInputTool.

inform_user

Sends a non-blocking progress update. The call returns immediately and the agent continues.

Argument Type Required Notes
message string yes Up to max_message_length characters
user_name string no
involved_agents string[] no
metadata object no
Manifest params Default Notes
max_message_length 20000 Also sets the schema advertised to the model

The update is delivered through a UserIOContract or, if none is provided, the HITL resolver registry.

Implementation: mas.runtime.system_tools.InformUserTool.

Orchestration tools

create_subagent

Creates a bounded subagent from a declared template, runs it for one turn, and returns the child's text. Alias advertised to the model: spawn_subagent. Declare either name on the parent manifest.

Argument Type Required Notes
template string yes Enum of params.templates[].id
task string yes Task for the child; not a new manifest
Manifest params Default Notes
templates (required) {id, ref, description} rows; ref is a local Agent manifest
max_spawns 8 Session-wide ledger
max_depth 3 Nested create/spawn depth

The child cannot invent tools or templates. Ctl tears the instance down after the turn. See Spawned subagents and Tutorial 7.

Implementation: mas.library.standard.plugins.system_tools.spawn_subagent.SpawnSubagentTool (advertise) plus mas.library.standard.plugins.engine_tools.subagent_spawner.SubagentSpawner (run).