Tools: what an agent can actually do.
Tools are the hands: file access, shell, project management, task execution. Unlike skills (loaded on demand) and reference docs (read when relevant), tools attached to an agent are always visible in its prompt — a deliberate contract, because an agent should always know what it's capable of.
The built-in catalog
Agents working on a project get a practical core set, granted per agent:
- Files — list, read, write, and create files in the active project folder, with path safety enforced at the tool boundary.
- Shell — run commands from the project root (PowerShell on Windows, bash elsewhere), with timeouts.
- Skill scripts —
run_skill_scriptresolves and executes a script from an available skill. See Skills. - Memory —
update_memorywrites the shared project or profileMEMORY.mdback whole. There's no read tool: memory is always injected into the prompt, so the agent already sees it. See Projects & Memory. - Tasks —
run_tasklets a conversational agent invoke a structured task and use its JSON result. See Tasks. - Collaboration — consult another agent, switch agents, switch activities.
- Git (optional) — status, diff, log, commit for project folders under version control.
Workspace tool definitions
Beyond the built-ins, workspaces can define custom tools — name, description, parameters, implementation — managed in the workspace and attached to agents by name. An agent can only use tools from its own workspace's scope chain, which keeps the isolation story intact.
Tools from elsewhere
MCP servers contribute tools the same way — attached at global or workspace scope, surfaced to agents alongside the built-ins. And a tool doesn't even need an implementation to be attachable: see Exposures & AIR for capabilities that route to the caller instead of executing locally.
Where it lives
core/project_file_tools.py— the built-in catalog and its factory.core/tool_manager.py/core/ws_tool_manager.py— workspace tool definitions and attachment.core/runtime_tool_registry.py— what a session actually gets.core/langchain_tool_manager.py— LangChain-backed tool integrations.