Here are some of the main architectural features of Claude Code:
- **Subagent Support**
You can create **custom subagents** within Claude Code that have their own prompts, memory context, and tool access. These subagents help break down complex tasks into smaller, more manageable units.
- If you omit the `tools` field in a subagent’s config, it inherits all tools available to the main thread (including MCP tools).
- You can also specify exactly which tools a subagent can use.
- Use the `/agents` command to interactively manage subagents.
- docs.anthropic.com ![]()
- **Agent Manifests**
Projects use configuration files (often named `Claude.md` or similar manifest files) to define agent identities, operational rules, and context settings. A recent empirical study examined ~253 such manifests to identify common structural patterns - arXiv ![]()
- **Model Context Protocol (MCP) Integration**
Claude Code can access external APIs, data sources, or tools via MCP servers. This enables agents to interact with databases, compute services, or custom tools beyond just LLM completions.
- MCP is an open standard for connecting AI agents and tools.
- Subagents can invoke MCP tools just like the main agent.
- docs.anthropic.com ![]()
- **Session Management & Tool Lifetimes**
Claude Code supports built-in commands for managing session context (e.g. compaction of old tool references) to ensure longer-running tasks remain efficient.
- New features like **Microcompact** help clear old tool calls automatically when context grows.
- reddit.com ![]()
- **File & Tool Access**
Subagents can write, delete, or modify files and invoke tools in your environment (within permissions). Some users have observed this capability, notably for operations on repositories or codebases.
- reddit.com ![]()
- **Flexible & Unopinionated**
Claude Code is built to be customizable: it doesn’t force a rigid workflow. You can script or integrate how you like.
- Because of this flexibility, there is a steeper learning curve for structuring agent flows.
- anthopic.com ![]()