A community-driven collection of tools for LangChain/LangGraph agents. Build smarter agents by plugging in ready-to-use tools or contribute your own.
# Clone the repository
git clone https://github.com/yourusername/agent-tools.git
cd agent-tools
# Create virtual environment with uv
uv venv
source .venv/bin/activate
# Install dependencies
uv pip install -r todo/requirements.txt
# Set up environment variables
cp .env.example .env
# Add your API keys to .env| Category | Tools | Description | Status |
|---|---|---|---|
| Bash & Shell | bash, glob, grep |
Execute shell commands and perform advanced searches | ✅ Ready |
| File System | read_file, write_file, edit_file |
Robust file manipulation with safety checks | ✅ Ready |
| Todo Manager | create_todo, list_todos, update_todo |
Track progress during multi-step agent tasks | ✅ Ready |
| Interactive | ask_question |
Human-in-the-loop interaction for clarifying questions | ✅ Ready |
| Subagents | subagent |
Delegate complex tasks to specialized sub-agents | ✅ Ready |
| Skills | - | Extensible framework for adding custom capabilities | 🚧 Beta |
The tools are designed to be used with LangChain or LangGraph agents. Here's how to initialize a basic agent with our tool collection:
from base.models import ToolCollection
from bash.tools import BASH_TOOLS
from file_system.tools import FILE_SYSTEM_TOOLS
from todo.tools import TODO_TOOLS
# Combine toolsets
all_tools = BASH_TOOLS + FILE_SYSTEM_TOOLS + TODO_TOOLS
# Or use the ToolCollection to load everything
# collection = ToolCollection().load_all()# The agent can intelligently edit files instead of rewriting them
edit_file(
file_path="/path/to/script.py",
old_content="def old_func():\n pass",
new_content="def new_func():\n print('Hello World')",
)We welcome contributions! Here's how to add your own tools:
-
Fork & Clone
git clone https://github.com/yourusername/agent-tools.git cd agent-tools -
Create a new tool directory
mkdir my_tool cd my_tool -
Structure your tool
my_tool/ ├── __init__.py ├── tools.py # Your tool implementations ├── prompt.md # System prompt for the agent └── requirements.txt # Tool-specific dependencies -
Implement your tools in
tools.py:from langchain_core.tools import tool from typing import Annotated @tool def my_awesome_tool( param: Annotated[str, "Description of the parameter"] ) -> str: """Clear docstring explaining what the tool does. Include: - When to use this tool - What it returns - Example usage """ # Your implementation return "result" MY_TOOLS = [my_awesome_tool]
-
Write a system prompt in
prompt.mdexplaining how the agent should use your tools -
Submit a Pull Request
- ✅ Use clear, descriptive tool names
- ✅ Write comprehensive docstrings (agents read these!)
- ✅ Use
Annotatedtypes for parameter descriptions - ✅ Include a
prompt.mdwith usage guidelines - ✅ Add tool-specific dependencies to a local
requirements.txt - ✅ Include example usage in your PR description
- Ensure your tool works with the latest LangChain/LangGraph
- Update the README table with your new tool
- Add any new dependencies
- Submit PR with a clear description and example usage
agent-tools/
├── agent.py # Example agent implementation
├── base/ # Shared base classes and utilities
├── bash/ # Shell execution & search tools (grep, glob)
├── file_system/ # File I/O and targeted editing tools
├── interactive/ # Human-in-the-loop interaction tools
├── skills/ # Reusable agent skill modules
├── subagents/ # Sub-agent delegation tools
└── todo/ # Multi-step task tracking tools
Create a .env file with your API keys:
GOOGLE_API_KEY=your_google_api_key
OPENAI_API_KEY=your_openai_api_key
# Add other provider keys as needed- Python 3.10+
- LangChain 1.0+
- LangGraph 1.0+
MIT License - see LICENSE for details.
Give a ⭐ if this project helped you build better agents!
Built with ❤️ by the community