{"id":29666503,"url":"https://github.com/nehalvaghasiya/langgraph-agents","last_synced_at":"2026-04-13T13:31:18.217Z","repository":{"id":305044041,"uuid":"1020411006","full_name":"nehalvaghasiya/langgraph-agents","owner":"nehalvaghasiya","description":"Real-world AI agents that think, search, write, and build - powered by LangGraph and modular LLM","archived":false,"fork":false,"pushed_at":"2026-01-13T21:36:08.000Z","size":413,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T23:57:00.652Z","etag":null,"topics":["agents","ai-automation","ai-tools","autonomou-agents","document-generation","groq","langchain","langgraph","llm","multi-agent","nlp","openai","python","transformers","web-scrapping"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nehalvaghasiya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-15T20:34:50.000Z","updated_at":"2026-01-13T21:36:12.000Z","dependencies_parsed_at":"2025-07-18T03:30:31.950Z","dependency_job_id":"f77f5da6-a183-4785-8c94-631e00d78cac","html_url":"https://github.com/nehalvaghasiya/langgraph-agents","commit_stats":null,"previous_names":["nehalvaghasiya/langgraph-agents"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nehalvaghasiya/langgraph-agents","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Flanggraph-agents","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Flanggraph-agents/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Flanggraph-agents/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Flanggraph-agents/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nehalvaghasiya","download_url":"https://codeload.github.com/nehalvaghasiya/langgraph-agents/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nehalvaghasiya%2Flanggraph-agents/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31754773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T13:27:56.013Z","status":"ssl_error","status_checked_at":"2026-04-13T13:21:23.512Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","ai-automation","ai-tools","autonomou-agents","document-generation","groq","langchain","langgraph","llm","multi-agent","nlp","openai","python","transformers","web-scrapping"],"created_at":"2025-07-22T15:10:02.505Z","updated_at":"2026-04-13T13:31:18.210Z","avatar_url":"https://github.com/nehalvaghasiya.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LangGraph Agents\n\n## Table of Contents\n* [Overview](#overview)\n* [Technical Architecture](#technical-architecture)\n* [Installation](#installation)\n  * [Using **uv** (recommended)](#using-uv-recommended)\n  * [Using `pip` / virtual-env](#using-pip--virtualenv)\n* [Quick Start](#quick-start)\n* [Troubleshooting](#troubleshooting)\n* [Directory Tree](#directory-tree)\n\n## Overview\n`langgraph-agents` is a modular AI agent framework built on **LangGraph** and **LLM models**, designed to create and orchestrate intelligent agents for tasks like document writing, research, chart generation, and retrieval-augmented generation (RAG). It's ideal for developers who want:\n- **Composable agents** for complex workflows, using ReAct-style reasoning and tool calling\n- **Seamless integration** with tools for web search, scraping, document I/O, and more\n- **Supervisor-based teams** to manage multi-agent collaboration (e.g., paper writing or research teams)\n- **Extensible structure** for adding new agents in the future\n\n\nThis project is actively evolving, with plans to incorporate additional agents for specialized domains.\n\n## Technical Architecture\n| Layer              | Purpose                                                                 | File/Directory                  |\n|--------------------|-------------------------------------------------------------------------|---------------------------------|\n| Agent Classes      | Core ReAct-style agents for tasks like writing, note-taking, and search | `src/core/agents` (e.g., DocWriterAgent, SearchAgent) |\n| Tools              | Utilities for web search, scraping, document I/O, and Python execution, etc.  | `src/core/tools/` (e.g., document_io.py, scrape.py) |\n| Prompts              | Utilities for prompts  | `core/tools/` (e.g., document_io.py, scrape.py) |\n| Supervisors/Teams  | Routers to manage multi-agent workflows and team invocations            | `src/core/supervisor.py` (e.g., SupervisorAgent) |\n| Configuration      | LLM setup and API integrations (e.g., Groq, Google Search)              | `infra/llm_clients/groq.py`, `infra/api/google_search.py` |\n\n## Installation\n`langgraph-agents` works with **Python 3.10 – 3.12**. It requires dependencies like LangGraph, LangChain, Pydantic, and Groq SDK.\n\n### Using **uv** (recommended)\n[`uv`](https://docs.astral.sh/uv/getting-started/features/#projects) is a Rust-powered fast dependency manager and virtual environment tool.\n```bash\n# 1 - Install uv\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n# 2 - Set up and activate virtual environment\nuv venv .venv\nsource .venv/bin/activate\n# 3 - Lock and install dependencies\nuv lock\nuv sync\n```\n\n### Using `pip` / virtual-env\n```bash\npython -m venv .venv\nsource .venv/bin/activate       # Windows: .venv\\Scripts\\activate\npip install -r requirements.txt\n```\n\n\u003e **OpenAI users:** Don’t forget to export your OpenAI key before running:\n\u003e\n\u003e ```bash\n\u003e export OPENAI_API_KEY=\"...\"\n\u003e ```\n\n\u003e **Groq users:** Don’t forget to export your Groq key before running:\n\u003e\n\u003e ```bash\n\u003e export GROQ_API_KEY=\"gsk-...\"\n\u003e ```\n\n## Quick Start\nHere's how to instantiate and run a team agent for a paper-writing task.\n```python\nfrom infra.llm_clients.groq import get_llm\nfrom core.agents.paper_writing import PaperWritingTeamAgent\nfrom langchain_core.messages import HumanMessage\n\nllm = get_llm()\npaper_team = PaperWritingTeamAgent(llm)\nquery = \"Write an outline for a poem about cats and then write the poem to disk.\"\nresult = paper_team.graph.invoke({\"messages\": [HumanMessage(content=query)]})\n\n# ✅ Expected output: A dictionary with messages, including the final poem content\nprint(result[\"messages\"][-1].content)\n```\n\nFor a simple individual agent:\n```python\nfrom infra.llm_clients.groq import get_llm\nfrom core.agents.web_search import SearchAgent\nfrom langchain_core.messages import HumanMessage\n\nllm = get_llm()\nsearch_agent = SearchAgent(llm)\nquery = \"When is the next FIFA World Cup?\"\nresult = search_agent.graph.invoke({\"messages\": [HumanMessage(content=query)]})\nprint(result[\"messages\"][-1].content)\n```\n\n## Examples\nExamples for all agents are provided in the `examples/` directory. Each example demonstrates how to use a specific agent with realistic scenarios.\n\n### Running Examples\nSet your API keys and run any example with:\n```bash\nexport GROQ_API_KEY=\"gsk-...\"\nPYTHONPATH=src uv run python3 examples/\u003cagent_name\u003e.py\n```\n\n### Available Examples\n\n#### 1. **Document Writer** (`examples/doc_writer.py`)\nGenerate comprehensive documents using the DocWriterAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/doc_writer.py\n```\n**Use case:** Creating detailed documents, reports, or content.\n\n---\n\n#### 2. **Paper Writing Team** (`examples/paper_writing_team.py`)\nCollaborate with a team of agents to write poems and related content using PaperWritingTeamAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/paper_writing_team.py\n```\n**Use case:** Complex writing tasks requiring multiple perspectives (outlines, poems, documents).\n\n---\n\n#### 3. **Research Team** (`examples/research_team.py`)\nResearch a topic using the ResearchTeamAgent with web search and scraping capabilities.\n```bash\nPYTHONPATH=src uv run python3 examples/research_team.py\n```\n**Use case:** In-depth research with web search and content extraction.\n\n---\n\n#### 4. **Web Search** (`examples/web_search.py`)\nPerform web searches using the SearchAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/web_search.py\n```\n**Use case:** Finding information on the web, answering current event questions.\n\n---\n\n#### 5. **RAG (Retrieval-Augmented Generation)** (`examples/rag.py`)\nLoad documents from URLs and prepare them for retrieval-augmented generation using RagAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/rag.py\n```\n**Use case:** Question-answering over specific documents or knowledge bases.\n\n---\n\n#### 6. **Note Taker** (`examples/note_taker.py`)\nTake structured notes from content using NoteTakerAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/note_taker.py\n```\n**Use case:** Extracting key points and organizing information.\n\n---\n\n#### 7. **Chart Generator** (`examples/chart_generator.py`)\nGenerate charts and visualizations using ChartGeneratorAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/chart_generator.py\n```\n**Use case:** Creating visual representations of data and trends.\n\n---\n\n#### 8. **Web Scraper** (`examples/web_scraper.py`)\nScrape and extract content from web pages using WebScraperAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/web_scraper.py\n```\n**Use case:** Extracting specific information from websites.\n\n---\n\n#### 9. **Math Agent** (`examples/math_agent.py`)\nPerform arithmetic operations using the MathAgent.\n```bash\nPYTHONPATH=src uv run python3 examples/math_agent.py\n```\n**Use case:** Solving mathematical problems with addition and multiplication operations.\n\n---\n\n#### 10. **Summarization Agent** (`examples/summarization.py`)\n```bash\nPYTHONPATH=src uv run python3 examples/summarization.py\n```\n**Use case:** Summarization of long text.\n\n---\n\n### Running All Examples\nTo run all examples at once:\n```bash\nfor example in examples/*.py; do\n    echo \"Running $example...\"\n    PYTHONPATH=src uv run python3 \"$example\"\n    echo \"---\"\ndone\n```\n\n## Troubleshooting\n- **API Key Errors:** Ensure `GROQ_API_KEY` is set in your environment.\n- **Dependency Issues:** If using uv, run `uv sync` again. For pip, verify `requirements.txt` includes `langgraph`, `langchain`, and `groq`.\n- **Graph Recursion Limits:** If loops exceed defaults, pass `{\"recursion_limit\": 100}` to `graph.invoke()`.\n- **Model Availability:** Confirm Groq models (e.g., LLaMA) are accessible; fallback to OpenAI if needed.\n- For more, check console logs or raise an issue on the repo.\n\n## Directory Tree\n```text\nlanggraph-agents/\n├── Makefile\n├── README.md\n├── development.md\n├── devtools/\n│   └── lint.py\n├── examples/\n│   ├── __init__.py\n│   ├── chart_generator.py\n│   ├── doc_writer.py\n│   ├── math_agent.py\n│   ├── note_taker.py\n│   ├── paper_writing_team.py\n│   ├── rag.py\n│   ├── research_team.py\n│   ├── web_scraper.py\n│   └── web_search.py\n├── installation.md\n├── pyproject.toml\n├── src/\n│   ├── core/\n│   │   ├── supervisor.py\n│   │   ├── agents/\n│   │   │   ├── base.py\n│   │   │   ├── chart_generator.py\n│   │   │   ├── doc_writer.py\n│   │   │   ├── math_agent.py\n│   │   │   ├── note_taker.py\n│   │   │   ├── paper_writing.py\n│   │   │   ├── rag.py\n│   │   │   ├── research_team.py\n│   │   │   ├── supervisor.py\n│   │   │   ├── web_scraper.py\n│   │   │   └── web_search.py\n│   ├── prompts/\n│   │   └── rag.py\n│   ├── tools/\n│   │   ├── document_io.py\n│   │   ├── math.py\n│   │   ├── python_repl.py\n│   │   └── scrape.py\n│   └── utils/\n│       └── env.py\n│   ├── infra/\n│   │   ├── api/\n│   │   │   └── google_search.py\n│   │   └── llm_clients/\n│   │       └── groq.py\n│   └── services/\n├── tests/\n│   ├── core/\n│   │   ├── agents/\n│   │   │   ├── test_base.py\n│   │   │   ├── test_chart_generator.py\n│   │   │   ├── test_doc_writer.py\n│   │   │   └── test_note_taker.py\n│   │   └── test_supervisor.py\n├── uv.lock\n└── workspace/\n```\n\n## Bug / Feature Request\n\nIf you find a bug or the chatbot doesn't work as expected, please open an issue [here](https://github.com/nehalvaghasiya/langgraph-agents/issues/new) with:\n- Description of the issue\n- Steps to reproduce\n- Error messages or screenshots\n- Your environment details (OS, Python version)\n\nIf you'd like to request a new feature, open an issue [here](https://github.com/nehalvaghasiya/langgraph-agents/issues/new) with:\n- Feature description\n- Use case and benefits\n- Example scenarios\n\n## Tech Stack\n\nThis project is built with the following technologies:\n\n- **Python 3.10+** - Core programming language\n- **LangGraph** - Orchestration framework for multi-agent workflows\n- **LangChain** - LLM application framework with tool integration\n- **OpenAI API** - Language model integration\n- **Groq** - High-performance LLM inference\n- **Sentence Transformers** - Embedding models for semantic search\n- **BeautifulSoup4** - Web scraping and HTML parsing\n- **pytest** - Testing framework\n- **Ruff** - Fast Python linter and formatter\n\n## Contributing\n\nContributions are welcome! If you'd like to contribute to this project:\n\n1. Fork the repository\n2. Create a new branch for your feature (`git checkout -b feature/amazing-feature`)\n3. Make your changes and add tests\n4. Ensure all tests pass (`pytest tests/`)\n5. Run the linter (`ruff check .`)\n6. Commit your changes (`git commit -m 'Add amazing feature'`)\n7. Push to your branch (`git push origin feature/amazing-feature`)\n8. Open a Pull Request\n\nFor major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n## Credits\n\nThis project is built on top of excellent open-source technologies:\n\n- **[LangChain](https://github.com/langchain-ai/langchain)** - Framework for developing applications powered by language models\n- **[LangGraph](https://github.com/langchain-ai/langgraph)** - Library for building stateful, multi-agent applications with LLMs\n- **[OpenAI](https://openai.com/)** - Advanced language model APIs\n- **[Groq](https://groq.com/)** - Ultra-fast LLM inference engine\n- **[Hugging Face Transformers](https://github.com/huggingface/transformers)** - State-of-the-art machine learning models\n\nSpecial thanks to the open-source community for these foundational tools.\n\n## Author\n\n**Nehal Vaghasiya**","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehalvaghasiya%2Flanggraph-agents","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnehalvaghasiya%2Flanggraph-agents","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnehalvaghasiya%2Flanggraph-agents/lists"}