Core concepts

Tools

Learn how Bob uses specialized tools to read files, edit code, run commands, spawn subagents, use MCP integrations, and switch modes to streamline your coding workflow.

Tool workflow

When you work with Bob, it determines the appropriate actions. For each step, Bob will:

  1. Select the appropriate tool based on your request
  2. Present the tool with its parameters for your review
  3. Run the approved tool and show you the results
  4. Continue this process until your task is complete

Tool categories

Bob's tools are grouped by their primary function. Understanding these categories helps you see how Bob performs different tasks.

Read tools

Read tools let Bob access file content and understand code structure without making changes.

ToolPurposeExample use
read_fileRead the contents of a file, with optional line rangesView configuration files, examine source code
globFind files by name pattern (e.g. **/*.ts)Locate test files, find all components
grepSearch file content using regex patternsFind function definitions, locate TODOs
list_filesList files and directoriesBrowse a single directory's structure
GetSymbolsOverviewGet top-level symbols in a fileUnderstand file structure before diving in
FindSymbolLook up a symbol by name path with optional depthNavigate to a class, method, or function
FindReferencingSymbolsFind all references to a symbolUnderstand where a function or type is used

Bob uses read tools when your request involves reviewing code, searching for patterns, or examining project structure.

Write tools

Write tools let Bob create new files or modify existing code.

ToolPurposeExample use
write_fileCreate a new file or fully rewrite an existing oneGenerate new components, create configuration files
apply_diffApply precise, targeted changes to specific parts of a fileUpdate function logic, fix bugs, refactor code
insert_contentInsert new lines at a specific position in a fileAdd imports, insert new functions
search_and_replaceFind and replace text or regex patterns across a fileRename variables, update repeated patterns

Bob uses write tools when your request involves creating files, implementing features, fixing bugs, or refactoring code.

Command tools

Command tools let Bob run commands and perform system operations.

ToolPurposeExample use
execute_commandRun CLI commands in your workspaceInstall dependencies, run tests, build projects

Bob uses command tools when your request involves running commands, installing packages, running scripts, or performing system operations.

Subagent tools

Subagent tools let Bob spawn an independent agent to handle focused, self-contained work in its own isolated context.

ToolPurposeExample use
spawn_subagentCreate an independent agent with its own context windowResearch a codebase section, gather information without polluting the main context

How subagents work

A subagent runs independently from the main conversation. It has its own context window, executes its assigned task, and returns a summary of results back to Bob. This makes subagents useful for work that would otherwise add large amounts of irrelevant content to the main conversation.

Bob uses subagents sparingly. The default is always to do the work directly. A subagent is only considered when all of the following are true:

  • The task is clearly self-contained and only a summary is needed back
  • It would add significant irrelevant content to the main context
  • It cannot be accomplished with one or two direct tool calls

There are two subagent types:

TypeDescription
exploreRead-only codebase exploration, runs on a lighter model
generalFull tool access, runs on the default model

By default, a subagent does not see the parent conversation history. Setting fork_context: true passes the conversation history into the subagent when it needs to understand prior decisions, constraints, or user preferences.

Bob does not use subagents for simple file reads, quick searches, single-tool operations, or tasks where it already has the relevant context.

Subtask tools

Subtask tools let Bob create a new, named task instance that runs as its own dedicated conversation in the UI.

ToolPurposeExample use
start_subtaskCreate a new task with a title, instructions, and optional todo listBreak a large request into a tracked subtask with its own conversation thread

How subtasks work

A subtask is a fully independent task that appears in the UI with its own breadcrumb and conversation history. Unlike a subagent — which runs silently in the background and only returns a summary — a subtask is visible and interactive. You can follow its progress, review its output, and continue the conversation within it.

Bob uses subtasks when a request is complex enough to benefit from dedicated tracking and a separate conversation thread. A subtask can be given:

  • A title shown in the UI breadcrumb
  • A message with detailed instructions
  • An initial todo list to track steps
  • An optional mode to start it in (for example, Plan mode for design work)

MCP tools

MCP tools let Bob extend its capabilities through connected Model Context Protocol (MCP) servers.

ToolPurposeExample use
MCP server toolsAccess tools provided by connected MCP serversQuery databases, interact with APIs, access external services

Bob uses MCP tools when your request involves capabilities provided by configured MCP servers, such as monday.com, product knowledge bases, or custom integrations.

Mode tools

Mode tools let Bob switch between different modes for specialized tasks.

ToolPurposeExample use
switch_modeChange to a different mode (Agent, Plan, Ask, etc.)Switch to Plan mode for architecture design, Agent mode for implementation

Bob uses mode tools when your request is better handled by a different mode and its specialized capabilities.

Skill tools

Skill tools let Bob activate specialized instruction sets for specific domains and tasks.

ToolPurposeExample use
use_skillLoad detailed instructions for a named skill into the current contextActivate the Carbon builder skill, load Jira workflow guidance

Skills extend Bob's built-in knowledge with curated, domain-specific instructions. When a request matches a skill — such as working with Carbon Design System components, writing DITA documentation, or managing Jira sprints — Bob activates the relevant skill once per conversation to load its full guidance before proceeding.

Workflow tools

Workflow tools let Bob launch pre-defined, multi-step processes designed for specific recurring tasks.

ToolPurposeExample use
start_workflowLaunch a named workflow with its own structured stepsCreate a pull request, run a code review

Workflows are curated step-by-step processes for common tasks. Bob uses them when a request clearly matches a workflow's purpose — for example, generating a PR description from a git diff or reviewing code changes against a base branch.

Todo tools

Todo tools let Bob track progress through multi-step tasks using a visible checklist.

ToolPurposeExample use
update_todo_listCreate or update a markdown checklist of task stepsTrack implementation steps, mark completed items, add newly discovered tasks

Bob uses todo tracking for complex tasks with multiple steps. The list is updated as work progresses — marking items complete, adding newly discovered steps, and keeping one item in progress at a time. This gives you a clear view of what has been done and what remains.

Question tools

Question tools let Bob gather additional information needed to complete tasks.

ToolPurposeExample use
ask_followup_questionRequest clarification or additional detailAsk about preferred implementation approach, request missing information

Bob uses question tools when your request requires more information or clarification before Bob can proceed.

How is this topic?