An intelligent AI agent that delivers personalized book suggestions based on reader preferences, favorite titles, genres, ratings, reviews, and upcoming releases. It analyzes input to curate tailored literary recommendations with detailed metadata like author, genre, plot summary, and ratings. Ideal for discovering new reads, genre-specific lists, or books similar to favorites, this agent helps users explore diverse fiction and non-fiction options with contextual, engaging suggestions
An intelligent AI agent that delivers personalized book suggestions based on reader preferences, favorite titles, genres, ratings, reviews, and upcoming releases. It analyzes input to curate tailored literary recommendations with detailed metadata like author, genre, plot summary, and ratings. Ideal for discovering new reads, genre-specific lists, or books similar to favorites, this agent helps users explore diverse fiction and non-fiction options with contextual, engaging suggestions. Built on the Bindu Agent Framework for the Internet of Agents.
Key Capabilities:
- � Personalized book recommendations using Exa search
- 🎯 Analysis of reader preferences and reading history
- ⭐ Integration of ratings and reviews from Goodreads/StoryGraph
- � Detailed book metadata including genres, awards, and content warnings
- 🔮 Support for diverse genres and author perspectives
- Python 3.10+
- uv package manager
- API keys for OpenRouter and Mem0 (both have free tiers)
# Clone the repository
git clone https://github.com/raahulrahl/books-recommender-agent.git
cd books-recommender-agent
# Create virtual environment
uv venv --python 3.12.9
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Install dependencies
uv sync
# Configure environment
cp .env.example .envEdit .env and add your API keys:
| Key | Get It From | Required |
|---|---|---|
OPENROUTER_API_KEY |
OpenRouter | ✅ Yes |
MEM0_API_KEY |
Mem0 Dashboard | If you want to use Mem0 tools |
# Start the agent
uv run python -m books_recommender_agent
# Agent will be available at http://localhost:3773# Initialize git repository and commit your code
git init -b main
git add .
git commit -m "Initial commit"
# Create repository on GitHub and push (replace with your GitHub username)
gh repo create raahulrahl/books-recommender-agent --public --source=. --remote=origin --push# Get personalized recommendations
"I loved The Night Circus and The Invisible Life of Addie LaRue. Can you recommend similar books?"
# Genre-specific search
"Recommend 5 fantasy books with strong female protagonists published in the last 2 years"
# Based on preferences
"I enjoy literary fiction with magical realism elements, around 300-400 pages"Plain Text:
I'm looking for mystery novels similar to Agatha Christie with modern settings
JSON:
{
"role": "user",
"content": "Recommend science fiction books with themes of AI and consciousness"
}The agent returns structured output with:
- Book Recommendations: Title, author, publication year
- Detailed Metadata: Genre, ratings, page count, awards
- Summaries: Engaging plot descriptions and content advisories
- Additional Info: Series information, similar authors, audiobook availability
The agent exposes a RESTful API when running. Default endpoint: http://localhost:3773
For complete API documentation, request/response formats, and examples, visit:
📚 Bindu API Reference - Send Message to Agent
Primary Capability:
- Curates personalized book recommendations using Exa search
- Analyzes reader preferences and reading patterns
- Provides comprehensive book metadata and ratings
Features:
- Exa-powered book discovery and search
- Goodreads/StoryGraph rating integration
- Content warnings and trigger advisories
- Series information and author suggestions
- Markdown-formatted recommendations with emoji indicators
Best Used For:
- Finding books similar to favorites
- Genre-specific recommendations
- Discovering new authors and diverse perspectives
- Getting detailed book information with ratings
Not Suitable For:
- Academic paper recommendations
- Technical documentation searches
- Non-book media recommendations
Performance:
- Average processing time: ~1-2 seconds
- Max concurrent requests: 10
- Memory per request: 256MB
# Build and run with Docker Compose
docker-compose up --build
# Agent will be available at http://localhost:3773The agent runs on port 3773 and requires:
OPENROUTER_API_KEYenvironment variableMEM0_API_KEYenvironment variable
Configure these in your .env file before running.
# Use production compose file
docker-compose -f docker-compose.prod.yml up -dMake your agent discoverable worldwide and enable agent-to-agent collaboration.
# Authenticate with GitHub
gh auth login
# Set deployment secrets
gh secret set BINDU_API_TOKEN --body "<your-bindu-api-key>"
gh secret set DOCKERHUB_TOKEN --body "<your-dockerhub-token>"Get your keys:
- Bindu API Key: bindus.directory dashboard
- Docker Hub Token: Docker Hub Security Settings
# Push to trigger automatic deployment
git push origin mainGitHub Actions will automatically:
- Build your agent
- Create Docker container
- Push to Docker Hub
- Register on bindus.directory
books-recommender-agent/
├── books_recommender_agent/
│ ├── skills/
│ │ └── books_recommender_agent/
│ │ ├── skill.yaml # Skill configuration
│ │ └── __init__.py
│ ├── __init__.py
│ ├── __main__.py
│ ├── main.py # Agent entry point
│ └── agent_config.json # Agent configuration
├── tests/
│ └── test_main.py
├── .env.example
├── docker-compose.yml
├── Dockerfile.agent
└── pyproject.toml
make test # Run all tests
make test-cov # With coverage reportmake format # Format code with ruff
make lint # Run linters
make check # Format + lint + test# Install pre-commit hooks
uv run pre-commit install
# Run manually
uv run pre-commit run -aContributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
See CONTRIBUTING.md for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with the Bindu Agent Framework
Why Bindu?
- 🌐 Internet of Agents: A2A, AP2, X402 protocols for agent collaboration
- ⚡ Zero-config setup: From idea to production in minutes
- 🛠️ Production-ready: Built-in deployment, monitoring, and scaling
Build Your Own Agent:
uvx cookiecutter https://github.com/getbindu/create-bindu-agent.git- 📖 Full Documentation
- 💻 GitHub Repository
- 🐛 Report Issues
- 💬 Join Discord
- 🌐 Agent Directory
- 📚 Bindu Documentation
Built with 💛 by the team from Amsterdam 🌷