54 lines
1.8 KiB
Markdown
54 lines
1.8 KiB
Markdown
# Deep Agent with Web Search and Virtual File Creation
|
||
|
||
## Overview
|
||
This repository contains a minimal implementation of a **Deep Agent** built from scratch using the `deepagents` framework. The agent can:
|
||
|
||
1. **Search the web** for information using DuckDuckGo.
|
||
2. **Create virtual files** during its execution.
|
||
3. **Export** those virtual files to the real filesystem after the agent finishes.
|
||
|
||
The implementation follows the guidelines from the *Deep Agents from Scratch* course and uses the BroJS LLM endpoint.
|
||
|
||
## Prerequisites
|
||
- Python 3.10 or newer
|
||
- A valid BroJS API key set in the environment variable `JOURNAL_MCP_PAT`.
|
||
- (Optional) A virtual environment to isolate dependencies.
|
||
|
||
## Installation
|
||
```bash
|
||
# Clone the repository
|
||
git clone https://git.brojs.ru/KirillKutlakhmetov/task-69de7223f309a98be0007e09.git
|
||
cd task-69de7223f309a98be0007e09
|
||
|
||
# Create and activate a virtual environment (recommended)
|
||
python -m venv .venv
|
||
source .venv/bin/activate # On Windows use .venv\Scripts\activate
|
||
|
||
# Install dependencies
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
## Usage
|
||
```bash
|
||
# Ensure the environment variable is set
|
||
export JOURNAL_MCP_PAT=your_brojs_api_key
|
||
|
||
# Run the agent
|
||
python main.py
|
||
```
|
||
|
||
The agent will perform a sample query (`"Python async programming"`). After completion, the virtual files created during the run will be exported to the `./exported_files` directory.
|
||
|
||
## Project Structure
|
||
- `main.py` – Entry point and agent definition.
|
||
- `requirements.txt` – Python dependencies.
|
||
- `README.md` – Project documentation.
|
||
|
||
## Customization
|
||
- To change the query, modify the `user_query` variable in `main.py`.
|
||
- To add more tools, define additional functions decorated with `@tool` and include them in the `tools` list when creating the agent.
|
||
- The agent can be extended to accept user input at runtime by replacing the hard‑coded query.
|
||
|
||
## License
|
||
MIT License.
|