add README.md
This commit is contained in:
@@ -1,17 +1,39 @@
|
|||||||
# DeepAgent Search
|
# DeepAgent from Scratch
|
||||||
|
|
||||||
This repository contains a simple deep agent that can search the web and create virtual files. The agent is built using the `deepagents` library and follows the "deep agents from scratch" pattern.
|
## Overview
|
||||||
|
This repository contains a minimal implementation of a **DeepAgent** inspired by the *Deep Agents from Scratch* course. The agent can:
|
||||||
|
|
||||||
## Features
|
1. Search the web using DuckDuckGo.
|
||||||
|
2. Create virtual files in an in‑memory file system.
|
||||||
|
3. Persist those virtual files to the real file system when the task is finished.
|
||||||
|
|
||||||
- Web search using DuckDuckGo.
|
The implementation uses:
|
||||||
- Virtual file creation in an in‑memory filesystem.
|
- **LangChain OpenAI** (`ChatOpenAI`) for LLM interactions.
|
||||||
- Export virtual files to the real filesystem at the end of the run.
|
- **DuckDuckGo Search** for web queries.
|
||||||
|
- A simple `VirtualFileSystem` class to hold files in memory.
|
||||||
|
|
||||||
## Usage
|
## Requirements
|
||||||
|
```
|
||||||
```bash
|
langchain-openai>=0.3.0
|
||||||
python main.py "search query"
|
langchain>=1.2.10
|
||||||
|
langgraph>=0.2.0
|
||||||
|
duckduckgo-search
|
||||||
```
|
```
|
||||||
|
|
||||||
The agent will perform the search, create virtual files, and write them to the current directory.
|
## Running the Agent
|
||||||
|
```bash
|
||||||
|
# Install dependencies
|
||||||
|
pip install -r requirements.txt
|
||||||
|
|
||||||
|
# Run the agent
|
||||||
|
python main.py
|
||||||
|
```
|
||||||
|
|
||||||
|
The script will perform a sample search for *"LangChain deep agent"* and create a file named `summary.txt` with the first search result. All virtual files are written to the current directory.
|
||||||
|
|
||||||
|
## Extending the Agent
|
||||||
|
- Add more tools by decorating functions with `@tool` and passing them to `DeepAgent`.
|
||||||
|
- Modify the `run` method to change the interaction loop or add more sophisticated prompting.
|
||||||
|
|
||||||
|
## License
|
||||||
|
MIT
|
||||||
|
|||||||
Reference in New Issue
Block a user