55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# Deep Agent based on LangGraph & LangChain
|
||
|
||
This repository contains a minimal implementation of a **Deep Agent** that can:
|
||
|
||
1. Search the web using the Tavily search API.
|
||
2. Create virtual files in an in‑memory file system.
|
||
3. Export all virtual files to the real filesystem.
|
||
|
||
The agent is built on top of the *LangGraph* framework and uses the *LangChain* tools API.
|
||
|
||
## Installation
|
||
|
||
```bash
|
||
# Create a virtual environment (recommended)
|
||
python -m venv .venv
|
||
source .venv/bin/activate
|
||
|
||
# Install dependencies
|
||
pip install -r requirements.txt
|
||
```
|
||
|
||
> **Note**: The Tavily API key is required for the web search tool. Set it via the
|
||
> environment variable `TAVILY_API_KEY`.
|
||
|
||
## Usage
|
||
|
||
```python
|
||
from agent import create_agent_executor, vfs
|
||
|
||
# Create an executor
|
||
executor = create_agent_executor()
|
||
|
||
# Run the agent with a simple prompt
|
||
result = executor.invoke({"input": "Find the latest news about Python and create a file called news.txt with the summary."})
|
||
print(result)
|
||
|
||
# After the agent finishes, export the virtual files
|
||
vfs.export_to_disk("output")
|
||
```
|
||
|
||
The `output` directory will contain `news.txt` with the content produced by the agent.
|
||
|
||
## Testing
|
||
|
||
The project includes a simple test that verifies the existence of the two
|
||
required functions:
|
||
|
||
```bash
|
||
python -m unittest discover -s tests
|
||
```
|
||
|
||
## License
|
||
|
||
MIT
|