A CLI agent that researches developer tools for a given query. It:
- Extracts relevant tools from recent web content
- Finds official websites and scrapes content via Firecrawl
- Analyzes each tool using an LLM (structured output)
- Prints concise, developer-focused recommendations
- Tool extraction: Pulls concrete products/services from articles and pages.
- Web research: Uses Firecrawl to search and scrape official sources.
- Structured analysis: Pricing model, open-source status, API availability, tech stack, language support, integrations.
- Actionable output: Clear CLI results plus short recommendations.
- Python: 3.11+
- API keys:
FIRECRAWL_API_KEY(required)GROQ_API_KEY(required forlangchain_groq.ChatGroq)
git clone <your-repo-url> Dev_Research_agent
cd Dev_Research_agentCreate a .env file in the project root:
# .env
FIRECRAWL_API_KEY=your_firecrawl_key
GROQ_API_KEY=your_groq_key- With uv (recommended; uses
pyproject.toml+uv.lock):
# Install uv if needed: https://docs.astral.sh/uv/
uv sync- Or with pip (fallback):
python -m venv .venv
source .venv/bin/activate
pip install firecrawl-py langchain langchain-groq langchain-openai langgraph pydantic python-dotenv# Using uv
uv run python main.py
# Or with python
python main.pyWhen prompted, enter a developer-tools query (type quit or exit to stop). Example queries:
- "API monitoring tools"
- "feature flag platforms"
- "error tracking for JS"
- "vector databases"
- "CI/CD for monorepos"
Developer Tools Research Agent
🔍 Developer Tools Query: vector databases
📊 Results for: vector databases
============================================================
1. 🏢 Pinecone
🌐 Website: https://www.pinecone.io/
💰 Pricing: Freemium
📖 Open Source: False
🛠️ Tech Stack: Python, JavaScript, REST
💻 Language Support: Python, JavaScript
🔌 API: ✅ Available
🔗 Integrations: LangChain, LlamaIndex
📝 Description: Managed vector database for semantic search and AI apps.
2. 🏢 Weaviate
...
Developer Recommendations:
----------------------------------------
For most teams, start with Pinecone for simplicity and managed ops; choose Weaviate if you need open-source control and on-prem. Pinecone’s API and ecosystem are strong and the free tier covers prototyping. Weaviate’s modular architecture is a win if you need hybrid search and extensibility.
-
CLI entrypoint:
main.py- Loads
.env, runs an interactive loop, callsWorkflow.run(query), prints results and recommendations.
- Loads
-
Workflow:
src/workflow.py- Builds a
langgraphstate machine:extract_tools: Searches/scrapes and asks the LLM to extract tool names.research: Finds official sites; scrapes with Firecrawl; analyzes each using structured LLM output.recommendation: Generates a brief, actionable summary.
- Uses
ChatGroq(model="openai/gpt-oss-20b", temperature=0.4).
- Builds a
-
Firecrawl client:
src/firecrawl_client.pysearch_companies(query, num_results): Firecrawl Search APIscrape_company_pages(url): Firecrawl Scrape API (markdown)- Requires
FIRECRAWL_API_KEY.
-
Models:
src/models.pyCompanyAnalysis,CompanyInfo,ResearchState(Pydantic).
-
Prompts:
src/prompts.py- System and user prompts for extraction, analysis, and recommendations.
main.py: CLI runnersrc/workflow.py: Orchestrates the research graph and LLM callssrc/firecrawl_client.py: Firecrawl search/scrape integrationsrc/models.py: Pydantic schemas for state and resultssrc/prompts.py: Prompt templatespyproject.toml: Dependencies and metadatauv.lock: Locked dependency resolution for uv
- Model:
openai/gpt-oss-20bviaChatGroq(needsGROQ_API_KEY) - Search/scrape: Firecrawl (needs
FIRECRAWL_API_KEY) - Env loading:
python-dotenvvia.env
- Missing FIRECRAWL_API_KEY: You’ll see "Missing FIRECRAWL_API_KEY environment variable". Add it to
.env. - GROQ auth errors: Ensure
GROQ_API_KEYis set and valid. - Sparse/empty results: The extractor falls back gracefully, but better queries (specific domain/feature) yield better tool lists.
- Rate limits/network: Retry after a minute; Firecrawl/LLM providers may throttle.
- You can swap models or providers by adjusting
ChatGroqinsrc/workflow.py.