Build-With-Me Buddy: Your AI Hardware Project Partner
Build-With-Me Buddy is an AI-powered multi-agent system designed to take a simple hardware project idea and transform it into a fully planned project, complete with a bill of materials, system diagrams, and starter code, all neatly organized in Notion.
This project was built for the Composio Hackathon, leveraging CrewAI to manage a team of specialized AI agents and Composio to connect them with powerful real-world tools for search and documentation. Inspiration
The world of electronics and hardware hacking is exciting, but for beginners, it can be daunting. The journey from a cool idea (like an "automated plant waterer") to a workable plan involves several steps: choosing the right components, finding where to buy them, understanding how they connect, and writing the code. This project aims to automate that entire initial phase, acting as an expert partner for hobbyists, students, and makers, lowering the barrier to entry and letting them focus on the fun part: building. What It Does
Build-With-Me Buddy streamlines the hardware project creation process through a simple, three-stage, conversational interface:
Stage 1: Planning: The user provides a one-line description of their project and a budget (e.g., "an automatic pet feeder for under 2000 INR"). The Project Architect agent analyzes this and generates a concise, high-level project plan.
Stage 2: Bill of Materials (BOM) Generation:
A Project Namer agent gives the project a catchy name.
The System Designer agent creates a conceptual list of necessary electronic components.
The Parts Sourcer agent takes this list and uses the Composio DuckDuckGo Search Tool to find real-world components, prices, and purchase links from Indian online stores. It's designed to be hyper-efficient, gathering data directly from search snippets to save time and resources.
All this information is then automatically organized and saved to a new project folder in Notion using the Composio Notion Toolkit.
Stage 3: Final Asset Generation:
The Diagram Specialist generates both workflow and system architecture diagrams in Mermaid format.
The Code Wizard writes a complete, beginner-friendly Arduino sketch to run the project.
These final assets are added to a "Full Project Guide" page within the project's Notion folder, again using the Composio Notion Toolkit, providing the user with a comprehensive, one-stop project resource.
The final output is a link to a Notion page containing everything the user needs to start building. How I Built It
This project is built on a stack designed for creating sophisticated AI agent workflows.
AI Agent Framework: CrewAI is the backbone of the application, used to define the different agents (like the parts_sourcer and code_wizard), assign them specific tasks, and manage their collaboration in a sequential process.
Tool & Action Integration: Composio is the critical link that gives the AI agents real-world capabilities.
Composio DuckDuckGo Search: This tool is used by the parts_sourcer agent. The agent is explicitly prompted to find prices and URLs from search snippets alone, making the data gathering process incredibly fast and efficient.
Composio Notion Toolkit: This is used extensively in the main Flask application (app.py) to programmatically create pages for the project plan, the bill of materials, and the final guide. It also populates these pages with the content generated by the agents, such as tables, Mermaid diagrams, and code blocks.
Language Models (LLMs): The application uses Google's Gemini models (gemini-2.5-pro for the manager and gemini-2.5-flash for the worker agents) for their reasoning and generation capabilities.
Backend: A Flask web server handles the frontend requests, manages the user session, and orchestrates the CrewAI workflows.
Configuration: The roles, goals, backstories, and task descriptions for each agent are neatly defined in YAML files (agents.yaml, tasks.yaml), making the system easy to configure and extend.
Project Flow
User Input: The app.py Flask application receives the initial project idea from the user.
Planning Crew: The planning_crew is kicked off. The project_architect agent takes the user's input and produces a structured plan.
BOM Crew: The application then runs a series of crews:
naming_crew generates a project name.
design_crew creates a conceptual component list.
sourcing_crew uses the Composio search tool to find real parts and prices.
The Flask app uses the Composio Notion tools to create and populate the project pages.
Final Assets Crew:
diagram_generation_crew produces Mermaid diagrams.
code_generation_crew writes the Arduino code.
The Flask app uses the Composio Notion tools a final time to add these assets to the guide page.
Output: The user is presented with a link to the final, comprehensive Notion page.
Challenges I Ran Into
Crewai_composio package disfunctional. CLI not working. Composio.exe file not found as submitted PR and friction log. Also verified in Pypi packages(https://pypi.org/pypi/composio-crewai/json)
Reliable Output Formatting: Getting LLMs to consistently return data in a specific format (like the clean JSON required for diagrams or the table structure for the BOM) was challenging. This required very specific, "hard-ruling" prompts and helper functions in Python (extract_json_block, clean_code_block) to parse the output robustly.
Agent Efficiency: The parts_sourcer agent could easily get stuck trying to find a price for an obscure component. I overcame this by designing a "fallback" mechanism in its prompt, instructing it to try a maximum of two times before giving up and moving on, ensuring the process never stalls.
Rate Limiting: During testing, the search-intensive sourcing agent would occasionally hit API rate limits. The application was built to handle this gracefully by detecting the rate limit error, pausing the process, and instructing the user to continue after a short wait, allowing the agent to resume from where it left off.
Accomplishments That I'm Proud Of
End-to-End Automation: I am proud of creating a seamless pipeline that takes a high-level idea and transforms it into a detailed, actionable project plan without manual intervention.
Efficient Tool Use with Composio: The parts_sourcer agent's ability to extract data from search snippets using the Composio tool is a highlight. It mimics how a human would quickly scan search results for information, making it much more efficient than traditional web scraping.
Automated Documentation: The integration with Notion via the Composio toolkit provides immense value. Instead of just printing out text, the system delivers a polished, well-organized, and persistent project guide that users can refer back to.
Resilient Agent Design: The system is designed to handle common failure points like API limits and an inability to find specific information, making the user experience much smoother.
What's Next for Build-With-Me Buddy
Expand Toolset with Composio: Integrate more Composio tools, such as connecting to supplier APIs (e.g., Digi-Key, Mouser) for real-time stock and pricing information.
Multi-Modal Capabilities: Add agents that can generate images of circuit diagrams or even 3D models for enclosures.
Broader Supplier Support: Extend the sourcing agent's capabilities to search for components from suppliers in different regions (e.g., USA, Europe).
Interactive Frontend: Develop a more dynamic frontend that visualizes the project's progress and allows for more user interaction at each stage.
How to Run
Follow these steps to set up and run the project locally.
- Clone the Repository code Bash
git clone https://github.com/your-username/build-with-me-buddy.git cd build-with-me-buddy
- Install Dependencies
It's recommended to use a virtual environment. code Bash
python -m venv venv
venv\Scripts\activate
source venv/bin/activate
pip install -r requirements.txt
- Configure Environment Variables
Create a file named .env in the root of the project directory and populate it with the necessary API keys and IDs.
.env file template: code Env
GOOGLE_API_KEY="YOUR_GOOGLE_GEMINI_API_KEY"
Your Composio API Key from https://app.composio.dev/
COMPOSIO_API_KEY="YOUR_COMPOSIO_API_KEY"
NOTION_PARENT_PAGE_ID="YOUR_NOTION_PARENT_PAGE_ID"
NOTION_AUTH_CONFIG_ID="YOUR_NOTION_AUTH_CONFIG_ID"
Getting Your Credentials:
GOOGLE_API_KEY: Get this from Google AI Studio.
COMPOSIO_API_KEY: Available in your Composio account dashboard.
NOTION_PARENT_PAGE_ID: Create a page in Notion to be the main folder for all generated projects. The ID is the last part of the URL (e.g., .../My-Projects-Page-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx).
NOTION_AUTH_CONFIG_ID: This is an advanced Composio feature that allows the application to use a pre-existing, one-time authentication with Notion. This avoids the need for re-authentication and is recommended for a smoother experience. You can set this up within the Composio platform. If you leave it blank, authentication may be handled differently.
- Run the Application
Once your .env file is configured, you can start the Flask server. code Bash
python app.py
The application will be running at http://127.0.0.1:5000. Open this URL in your browser to start using the Build-With-Me Buddy.