In my last post, I talked about what an AI Agent is and how it learns and reasons about it's environment to make effective decisions. At the core of an Agent is a Large Language Model (LLM), these LLMs contain a vast amount of knowledge but this knowledge is limited in recency up to the last date that data was gathered for training. If, for example, we want an agent to conduct company research on to prepare a sales rep for an upcoming pitch then LLMs are unlikely to have the latest company news contained in their training data. How do Agents get around this shortcoming... by using tools to query the web, interact external APIs and much more.
Anthropic wrote an excellent blog post on Building Effective Agents where they describe when it's appropriate to build an agent vs a workflow and how in either scenario the LLM is augmented by Retrieval, Tool Calling and Memory.
Tools allow agents to retrieve real-time data, perform domain-specific tasks, and ultimately provide more reliable and actionable outputs. In this post, we’ll explore how to build a company research agent — an agent that, given a company name or domain, conducts research to return key information and recent news — using two agentic frameworks: OpenAI Swarm and crewAI.
Why Tools Matter
While LLMs are excellent at generating human-like text and reasoning, they often lack up-to-date or specialized knowledge about the real world. By integrating tools such as web scrapers, APIs for company information (like Clearbit, Crunchbase, or NewsAPI), or custom modules for data aggregation, you enable your agent to:
- Access Real-Time Data: Get the latest news or financial data about a company.
- Perform Specialized Tasks: Scrape websites, query databases, or interact with external APIs.
- Improve Accuracy: Combine the LLM’s reasoning capabilities with factual data retrieval.
This synergy allows your agent to be more than just a conversational partner—it becomes an interactive assistant that can perform end-to-end research tasks.
The Company Research Agent: Concept Overview
Imagine an agent that accepts a company name (e.g., “openai.com” or “OpenAI”) and then:
- Fetches Key Company Information: Details such as the company’s mission, founders, industry, and recent milestones.
- Retrieves Recent News: The latest headlines or news snippets related to the company.
The agent accomplishes this by invoking various “tools” that might query a company database or a news API. For each framework, the agent is given a set of instructions and access to a web-search tool from crewAI. Let’s see how we might build this using two different frameworks.
Example 1: Building with OpenAI Swarm
OpenAI Swarm is a framework that allows you to orchestrate multiple specialized tools (or “agents”) to work in parallel and aggregate their outputs.
Unfortunately we hit a snag with swarm - It can't access the web however it does provide a report based on it's training data. This is a good example of how it's also important to proceed with caution with LLM output, the report could be mis-leading at a glance as it references 2025 in several places. You can view the full output on this GitHub gist.
Example 2: Building with crewAI
crewAI is another agent framework that emphasizes modularity and collaboration between different tools. Here’s how you might set up a company research agent with crewAI:
crewAI can of course use it's own web scraping tool and is able to identify recent news sources related to HubSpot such as our 2025 State of Marketing report which it uses to draw some conclusions from! You can read the full crewAI output at this gist if interested!
This crewAI example follows a similar pattern: we create a tool dedicated to retrieving company data and then build an agent that uses it. The simplicity of the crewAI interface makes it easy to add more tools as needed.
Conclusion
The examples above show that by leveraging the right tools and frameworks, you can build sophisticated AI agents that go beyond simple text generation. Whether you use OpenAI Swarm, crewAI, LangChain or another framework, the key takeaway is that tools empower your agent to fetch real-world data and provide timely, accurate answers. The full jupyter notebook is also available here.
As you continue to develop AI agents, consider how integrating specialized tools can enhance your application’s capabilities. The modularity of these frameworks not only simplifies development but also allows you to easily swap or add new tools as your project evolves.
Tools can be called a variety of different names such as Skills or Tasks alongside tools. Fundamentally, their goal is to enhance and extend the core capabilities of the LLM leading to more advance and complex agent use cases.
Feel free to share your thoughts or questions in the comments below!