# DeepSeek-Reasonix Subagent Profiles: explore, research, and review Compared

> Understand DeepSeek-Reasonix subagent profiles explore, research, and review. Learn how each profile isolates specialized tasks in sandboxed sessions for distinct AI agent functionalities.

- Repository: [YHH/DeepSeek-Reasonix](https://github.com/esengine/DeepSeek-Reasonix)
- Tags: deep-dive
- Published: 2026-08-13

---

**DeepSeek-Reasonix uses three distinct subagent profiles—explore for rapid read-only reconnaissance, research for deep multi-step investigation with web access, and review for code inspection with optional write permissions—to isolate specialized tasks in sandboxed child sessions.**

DeepSeek-Reasonix orchestrates complex software engineering workflows by spawning isolated child agents called **subagents**. According to the `esengine/DeepSeek-Reasonix` repository, these subagents are governed by **profiles** that define their system prompts, tool access, and execution boundaries. The three built-in profiles—**explore**, **research**, and **review**—share a common isolation model but differ fundamentally in their intended depth, default toolsets, and sandbox permissions.

## What Are DeepSeek-Reasonix Subagent Profiles?

A subagent profile is a manually created Skill configured with `runAs: subagent` that encapsulates a system prompt, a default model and effort level, and an optional tool allowlist. When invoked, Reasonix starts a fresh child model instance, feeds it the profile prompt combined with the task instructions, runs it to completion, and returns only the final answer to the parent agent. As documented in [`docs/SUBAGENT_PROFILES.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/SUBAGENT_PROFILES.md) (lines 5-7), this architecture ensures that intermediate reasoning steps and tool calls remain confined to the child session, preventing context pollution in the parent workflow.

## The Three Core Subagent Profiles

Each profile maps to a dedicated tool package defined in [`docs/PLUGIN_PACKAGES.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/PLUGIN_PACKAGES.md) (around line 440) and enforces specific execution constraints.

### Explore: Rapid Reconnaissance

The **explore** profile is optimized for fast, shallow data gathering. It operates within a strict **read-only sandbox** using a limited toolset consisting of `read_file`, `grep`, and `bash` (read-only mode). This profile is ideal for quickly skimming a codebase, listing directory structures, or collecting simple facts without risking unintended modifications. According to the source documentation, explore tasks are typically invoked using the `reasonix subagent try` command, which explicitly enforces read-only constraints.

### Research: Deep Investigation

The **research** profile supports structured, multi-step investigation that may require external data retrieval. While it defaults to read-only execution for safety, it expands the toolset to include `websearch` alongside `read_file`, `grep`, and `bash`. This profile is designed for bounded, complex queries such as analyzing library documentation or investigating concurrency models across multiple files. As noted in [`docs/SUBAGENT_PROFILES.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/SUBAGENT_PROFILES.md) (lines 80-88), research tasks are invoked via `reasonix subagent run`, allowing for model and effort overrides while maintaining the read-only sandbox unless explicitly configured otherwise.

### Review: Code Inspection and Verification

The **review** profile focuses on code review, diff inspection, and verification workflows. It defaults to read-only mode for safe preliminary analysis but can be granted write permissions to auto-fix identified issues. The toolset matches the explore profile (`read_file`, `grep`, `bash`) but executes with different system prompts optimized for critique and refactoring. The distinction between read-only preview and full-permission execution is controlled via CLI flags: `try` for safe review and `run` for review-and-fix scenarios.

## Technical Architecture and Execution Boundaries

### Session Isolation and Concurrency

Every subagent profile runs in an isolated child session managed by the spawn boundary controller. The parent session maintains only the task prompt and the child’s final output, discarding intermediate tool calls. As implemented in [`internal/agent/spawn_boundary.go`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/internal/agent/spawn_boundary.go), the system enforces default concurrency limits of **six concurrent subagents** and **three parallel writers** per session, configurable via repository settings.

### Model and Effort Resolution

The effective model and effort level for a subagent are resolved through a strict precedence hierarchy defined in [`docs/SUBAGENT_PROFILES.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/SUBAGENT_PROFILES.md) (lines 66-74):

1. Per-profile overrides in the Skill definition
2. Command-line `--model` and `--effort` flags
3. Profile front-matter configuration
4. Global repository defaults

This ensures that CLI invocations can temporarily override profile defaults without modifying the underlying Skill files.

### Tool Allowlists and Permissions

Profiles may declare an `allowed-tools` list to restrict the child agent’s capabilities. If omitted, the child inherits the repository’s standard tool policies. The **explore** and **research** profiles explicitly default to read-only sandboxes, while **review** can toggle write permissions based on the invocation command.

### Progress Preview Channel

While a subagent runs, the parent receives bounded UTF-8 text deltas via the `reasonix.subagent.text` channel, enabling live progress monitoring without persisting intermediate state. This mechanism is documented in [`docs/SUBAGENT_PROGRESS.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/SUBAGENT_PROGRESS.md) (lines 28-35) and allows developers to observe long-running research or review tasks in real time.

## CLI Usage and Practical Examples

The [`internal/cli/subagent.go`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/internal/cli/subagent.go) implementation exposes distinct commands for invoking each profile with appropriate safety guards.

```bash

# 1. Quick exploration of the repository (read-only)

reasonix subagent try explore "list all .go files in the project"

# 2. In-depth research on external libraries (read-only, multi-step)

reasonix subagent run research \
  "investigate the concurrency model of golang's sync package and summarize best practices"

# 3. Code review of the current diff (read-only preview)

reasonix subagent try review "review the current diff"

# 4. Review with automatic fixing (full permission)

reasonix subagent run review "review and fix the current diff"

```

All commands accept `--model`, `--effort`, `--max-steps`, and `--dir` parameters to control the child’s execution environment and working directory.

## Summary

- **DeepSeek-Reasonix subagent profiles** are isolated Skills (`runAs: subagent`) that encapsulate specialized system prompts and tool configurations.
- The **explore** profile provides fast, read-only reconnaissance with basic file and search tools.
- The **research** profile enables deep investigation with web access while maintaining read-only safety by default.
- The **review** profile specializes in code critique and can operate in read-only mode or with write permissions for auto-fixing.
- Execution boundaries are enforced by [`internal/agent/spawn_boundary.go`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/internal/agent/spawn_boundary.go), limiting concurrency to six subagents and three writers by default.
- Model resolution follows a four-tier hierarchy: profile overrides, CLI flags, front-matter, and global defaults.

## Frequently Asked Questions

### When should I use the explore profile versus the research profile?

Use **explore** for quick, single-step tasks like listing files or grepping for patterns where speed is prioritized over depth. Use **research** when the task requires multi-step reasoning, external documentation lookups via `websearch`, or complex analysis across multiple code paths. According to [`docs/SUBAGENT_PROFILES.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/SUBAGENT_PROFILES.md), explore is optimized for latency while research is optimized for thoroughness.

### Can subagent profiles modify files in the repository?

The **explore** and **research** profiles operate in read-only sandboxes by default and cannot modify files. The **review** profile can be executed in read-only mode using `reasonix subagent try` or granted write permissions using `reasonix subagent run` to allow automatic application of fixes. Write access is controlled by the spawn boundary and CLI invocation flags.

### How does DeepSeek-Reasonix handle concurrent subagent execution?

The system permits up to **six concurrent subagents** and **three parallel writers** per session by default, as specified in [`docs/SUBAGENT_PROFILES.md`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs/SUBAGENT_PROFILES.md) (lines 74-75). These limits prevent resource exhaustion and are enforced by the boundary controller in [`internal/agent/spawn_boundary.go`](https://github.com/esengine/DeepSeek-Reasonix/blob/main/internal/agent/spawn_boundary.go). Exceeding these limits queues additional subagents until capacity becomes available.

### What is the difference between the `try` and `run` commands?

The `try` command invokes a subagent in a strict read-only sandbox, preventing any file modifications regardless of the profile’s potential capabilities. The `run` command executes the subagent with full permissions defined by the profile, allowing write operations for profiles like **review** that support them. Both commands accept the same profile and task arguments but differ in their safety guarantees.