Inspiration

We wanted a system that can take any natural language request and spin up a team of specialized AI agents to handle each part of the work and monitor progress live

What it does

Agentable accepts a prompt and returns a run identifier it converts the prompt into a JSON crew spec and launches data agents analysis agents visualization agents and reporting agents progress logs stream over a WebSocket and the final artifact appears in the client

Sponsor tools and agent protocols

Agentable agents use a clear hierarchy of sponsor tools to handle different kinds of tasks. Below is how and when each tool is invoked:

exa_search_tool

  • When to use: Need deep, context-aware results (academic papers, technical reports, high-quality summaries).
  • How we use it: The semantic research agent queries EXA to gather authoritative sources and structured insights.

serper_dev_tool

  • When to use: General web research (definitions, how-tos, news, broad fact-finding).
  • How we use it: The web researcher agent runs Serper queries to collect facts, statistics, and general information from across the internet.

website_search_tool

  • When to use: Search confined to one domain (for example Wikipedia, a company blog, or a documentation site).
  • How we use it: The site-specific agent restricts queries to a target URL to retrieve structured content without noise.

code_docs_search_tool

  • When to use: Programming documentation, API references, code samples.
  • How we use it: The docs agent looks up language or library specifics (asyncio in Python, React hooks, etc.) so that analysis agents have accurate code examples.

browserbase_tool

  • When to use: Real browser interactions (clicking buttons, filling forms, scraping JavaScript-rendered pages, taking screenshots).
  • How we use it: The automation agent drives a headless browser to log into sites, navigate multi-step workflows, and extract dynamic content.

dalle_tool

  • When to use: Generate images or diagrams from text descriptions.
  • How we use it: The image agent produces visuals (charts, mockups, illustrative diagrams) by calling DALL·E with an image_description string.

Slack tools (slack_list_channels_tool, slack_resolve_channel_tool, slack_send_message_tool)

  • When to use: Post notifications or reports to Slack channels.
  • How we use them:
    1. slack_list_channels_tool to fetch available channels
    2. slack_resolve_channel_tool to map a channel name to an ID (using a descriptive alias)
    3. slack_send_message_tool to deliver the final summary or data payload into the resolved channel

How we built it

We built the backend with FastAPI, defining a POST /api/run endpoint for prompt submission and a WebSocket /api/ws/{runId} endpoint for live event streaming. The SpecAgent uses the OpenAI GPT 3.5 API to convert natural language prompts into structured JSON CrewAI task specifications. An orchestrator service reads the JSON spec and uses CrewAI to spawn and manage specialized agents for each task. We integrated external tools (serper_dev_tool, exa_search_tool, website_search_tool, browserbase_tool, dalle_tool, slack tools) through a tool registry and passed API keys plus extra headers from environment variables. We containerized the service with Docker and set up Fly.io deployment scripts for cloud execution.

Challenges we ran into

Parsing natural language into valid JSON required prompt refinements managing WebSocket connections under load exposed edge cases in cleanup logic integrating multiple APIs required adapters and without a health endpoint it was hard to monitor service health

Accomplishments that we are proud of

We built a working prototype in under two days that launches parallel agents with live updates we swapped between search tools without code changes and we recorded every intermediate artifact in W&B Weave for full traceability

What we learned

We learned how to build robust WebSocket servers manage backpressure refine LLM prompts for machine readable output and leverage artifact tracking for faster debugging

What is next for agentable

We will add a health endpoint and automated tests integrate Slack notifications build a CLI add translation and advanced visualization agents and refine Fly io production deployment

Built With

Share this project:

Updates