Files

2.2 KiB
Raw Permalink Blame History

LangGraph Research Brief Agent

This project demonstrates how to build a LangGraph agent that generates a short research brief for a given topic.
The agent:

  1. Creates an outline of 45 research steps.
  2. For each step, performs a web search (via Tavily) and writes a concise note.
  3. Synthesizes all notes into a coherent brief.

Prerequisites

  • Python 3.10+
  • A Tavily API key (free tier available).
  • An OpenAI API key (or any compatible LLM provider).

Setup

# Clone the repository
git clone https://github.com/your-username/langgraph-research-brief.git
cd langgraph-research-brief

# Create a virtual environment (optional but recommended)
python -m venv venv
source venv/bin/activate   # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Create a .env file in the project root based on the example:

cp .env.example .env

Edit .env and replace the placeholders with your actual keys:

OPENAI_API_KEY=sk-...
TAVILY_API_KEY=your_tavily_key

Running the Agent

python src/main.py

You should see output similar to:

=== Outline ===
1. Identify the security requirements for MCP integration
2. Review LangChain's authentication mechanisms
3. Evaluate secure communication protocols
4. Test the integration in a sandbox environment
5. Document best practices and compliance checks

=== Notes ===
[Step 1] ... (58 sentence note)
[Step 2] ... (58 sentence note)
...

=== Final Brief ===
...

Project Structure

src/
├── main.py          # Entry point
├── graph.py         # LangGraph definition
├── nodes.py         # Node implementations
├── state.py         # TypedDict for state
├── .env.example     # Environment variable template
requirements.txt
README.md

Customization

  • Topic: Change the default_topic variable in src/main.py to generate a brief on a different subject.
  • LLM: Swap ChatOpenAI for another provider (e.g., Ollama) by adjusting the imports and initialization in src/nodes.py.
  • Search: Replace TavilySearchResults with another search tool if desired.

License

MIT License