> ## Documentation Index
> Fetch the complete documentation index at: https://docs.upsonic.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Attributes

> Configuration options for the DeepAgent system

## Attributes

The DeepAgent class accepts the following initialization parameters:

| Attribute | Type | Default | Description |
| - | - | - | - |
| `model` | str \| Model | `"openai/gpt-4o"` | Model identifier or Model instance |
| `filesystem_backend` | BackendProtocol \| None | `StateBackend()` | Backend for filesystem storage |
| `enable_planning` | bool | `True` | Enable write\_todos planning tool |
| `enable_filesystem` | bool | `True` | Enable filesystem tools |
| `enable_subagents` | bool \| None | `None` | Enable task tool (auto-set based on subagents) |
| `subagents` | List\[Agent] \| None | `None` | List of Agent instances to use as subagents |
| `tool_call_limit` | int | `20` | Maximum tool calls per execution |
| `system_prompt` | str \| None | `None` | Custom system prompt |
| `debug` | bool | `False` | Enable debug logging |
| `name` | str \| None | `None` | Agent name |
| `memory` | Memory \| None | `None` | Memory instance |
| `db` | DatabaseBase \| None | `None` | Database instance |
| `tools` | List \| None | `None` | Additional user tools |

## Configuration Example

```python theme={null}
import asyncio
from upsonic.agent.deepagent import DeepAgent
from upsonic.agent.deepagent.backends import StateBackend, MemoryBackend, CompositeBackend
from upsonic.storage import SqliteStorage
from upsonic import Agent, Task
import tempfile
import os

async def main():
    # Create specialized subagents
    researcher = Agent(
        model="openai/gpt-4o-mini",
        name="researcher",
        role="Research Specialist",
        system_prompt="You are a research expert focused on gathering information"
    )
    
    writer = Agent(
        model="openai/gpt-4o-mini",
        name="writer",
        role="Technical Writer",
        system_prompt="You are a technical writing expert"
    )
    
    # Create persistent storage backend
    with tempfile.NamedTemporaryFile(suffix=".db", delete=False) as tmp:
        db_path = tmp.name
    
    try:
        storage = SqliteStorage(db_file=db_path)
        backend = CompositeBackend(
            default=StateBackend(),
            routes={
                "/research/": MemoryBackend(storage),
                "/reports/": MemoryBackend(storage)
            }
        )
        
        # Create deep agent with subagents and custom backend
        agent = DeepAgent(
            model="anthropic/claude-sonnet-4-5",
            name="Research Agent",
            subagents=[researcher, writer],
            filesystem_backend=backend,
            tool_call_limit=50,
            debug=False
        )
        
        # Create task
        task = Task(
            description="Research AI frameworks and write a comprehensive comparison. Save research to /research/frameworks.txt and final report to /reports/comparison.txt"
        )
        
        # Execute
        result = await agent.do_async(task)
        print(result)
        
        # Check plan
        plan = agent.get_current_plan()
        print(f"\nPlan: {len(plan)} tasks")
        
        storage.close()
    finally:
        if os.path.exists(db_path):
            os.unlink(db_path)

asyncio.run(main())
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.