6.4 KiB
Subagent profiles
Subagent profiles are reusable, explicitly invoked agents for focused work such
as code review, investigation, or documentation. Each profile is a manual Skill
with runAs: subagent: Reasonix starts an isolated child agent, gives it the
profile prompt and task, and returns only its final answer to the parent.
Profiles are shared by the desktop app, interactive CLI, and headless CLI. They use the existing Skill file format and storage rather than a separate database.
Create a profile
Create a project profile from a prompt file:
reasonix subagent create reviewer \
--description "Review changes for correctness and regressions" \
--prompt-file reviewer.md \
--tools read_file,grep,bash \
--model deepseek-pro \
--effort high
With a workspace, create defaults to project scope. Outside a workspace it
defaults to global scope. Pass --scope project or --scope global to make the
choice explicit. Project profiles are stored under
.reasonix/skills/<name>/SKILL.md; global profiles are stored under the
Reasonix home Skill directory described in
Configuration paths.
The prompt may come from --prompt, --prompt-file PATH,
--prompt-file -, or piped stdin:
printf '%s\n' 'Review the task and report only actionable findings.' | \
reasonix subagent create reviewer --description "Code reviewer"
Names may contain letters, digits, _, -, and .. Reasonix refuses a name
that already belongs to another project, global, custom, or built-in Skill.
Invoke a profile
In an interactive CLI or desktop chat, use a slash command:
/reviewer review the current diff
This is a real isolated subagent run, not prompt text inserted into the parent agent. The parent conversation retains the task and the child's final answer, not the child's full working context.
For scripts and other headless use, choose an explicit command:
# Preview with read-only tools.
reasonix subagent try reviewer "review the current diff"
# Run with the normal permission and sandbox policy.
reasonix subagent run reviewer "review and fix the current diff"
# Read the task from stdin and cap tool-call rounds.
git diff | reasonix subagent run reviewer --max-steps 20
Put run/try flags before the task. Both commands also accept --model REF
and --dir PATH. try always selects the read-only runner. run uses the
normal isolated runner; permission deny rules and sandbox restrictions still
apply. Ordinary reasonix run remains a plain one-shot task entry point and
does not implicitly interpret /<profile> syntax.
Manage profiles
reasonix subagent list [--dir PATH]
reasonix subagent create <name> --description TEXT (--prompt TEXT | --prompt-file PATH)
[--scope project|global] [--model REF] [--effort LEVEL]
[--tools a,b] [--color NAME] [--dir PATH]
reasonix subagent edit <name> [--description TEXT]
[--prompt TEXT | --prompt-file PATH] [--model REF] [--effort LEVEL]
[--tools a,b] [--color NAME] [--dir PATH]
reasonix subagent delete <name> --yes [--dir PATH]
reasonix subagent try <name> [--model REF] [--max-steps N] [--dir PATH] <task>
reasonix subagent run <name> [--model REF] [--max-steps N] [--dir PATH] <task>
edit changes only fields supplied on the command line. Use an explicit empty
value to clear an optional field:
reasonix subagent edit reviewer --model= --effort= --tools= --color=
An omitted or empty tool list means the profile adds no tool allowlist; the
runner's normal availability, permission, sandbox, and read-only rules still
apply. delete requires --yes so it is never an implicit destructive action.
Built-in profiles have no writable Skill file. Their edit command accepts
only --model and --effort, storing the same per-profile overrides used by
desktop settings. Clearing either value removes that override.
File format and advanced profiles
The CLI and desktop profile editors produce a compact Skill file like this:
---
name: reviewer
description: Review changes for correctness and regressions
color: orange
invocation: manual
runAs: subagent
model: deepseek-pro
effort: high
allowed-tools: [read_file, grep, bash]
---
You are a focused code reviewer. Inspect the requested changes and return only
actionable findings, ordered by severity.
invocation: manual prevents automatic discovery in the model's pinned Skill
index; users can still invoke the profile explicitly. allowed-tools is a
profile-level allowlist, not a way to bypass permissions.
You may hand-author richer runAs: subagent Skills, including custom Skill
paths and extra frontmatter. They can be listed and invoked, but the profile
editors deliberately refuse to edit or delete:
- profiles outside project/global scope;
- profiles whose
invocationis notmanual; - files with frontmatter the editor does not manage; or
- Skill directories containing
references/orscripts/.
This prevents a simplified editor from silently discarding advanced Skill content. Manage those profiles as Skill files instead.
Model and effort selection
The effective model and effort are selected in this order, from highest to lowest priority:
- per-profile entries in
agent.subagent_modelsandagent.subagent_efforts; - the profile's
modelandeffortfrontmatter; agent.subagent_modelandagent.subagent_effortdefaults;- the configured executor/default model and its default effort.
For example:
[agent]
subagent_model = "deepseek-pro"
subagent_effort = "high"
subagent_models = { reviewer = "deepseek/deepseek-v4-pro" }
subagent_efforts = { reviewer = "max" }
The --model flag on subagent run or subagent try selects the default model
used to initialize that headless command; profile-specific configuration still
has its documented precedence.
Desktop and troubleshooting
Profiles created in desktop settings and with reasonix subagent create share
the same files. Refresh or start a new session after changing profiles so an
already-running session reloads the Skill registry.
If invocation reports an unknown or disabled profile, check
reasonix subagent list, the current --dir, and skills.disabled_skills. If
editing reports that a profile is custom or rich, edit its SKILL.md directly
instead of forcing it through the profile editor. Unknown model references and
invalid effort levels are rejected when Reasonix resolves the effective model.