Guide
CrewAI
A crew is a good worker and a bad interface — it lives behind an API and expects well-formed inputs. Connect it to a bot and the bot becomes the front door: someone asks in chat, the crew runs, the answer comes back. Same on Hermes and OpenClaw.
What You Are Connecting
This connector does not run CrewAI inside your bot. It points at a crew you have already deployed — a CrewAI AMP deployment with its own URL and bearer token — and gives the agent a scoped HTTP client for it. The crew keeps its own models, tools and compute; your bot contributes the conversation.
That division is the reason to bother. Multi-agent crews are heavy and opinionated about their environment, and you do not want them competing with your chat agent for memory. What people actually want is a crew they can trigger from Telegram or Slack without opening a dashboard, and that is precisely what this gives you.
Connect It
- Open the dashboard, go to Tools, and pick the running bot. Tools are installed per instance, not per account.
- Find CrewAI and connect it with your deployment URL — the
https://your-crew.crewai.comaddress the platform gave you. HTTPS only. - Copy the bearer token from the deployment’s Status tab, change the auth mode from None to Bearer, and paste it. The token field is hidden while the mode is None.
The steps are identical on Hermes Agent and OpenClaw.
The Three Calls
GET /inputs— what this crew expects. Worth calling first even when you think you know: it is the crew’s own declaration, and it is what stops the agent inventing a field name.POST /kickoffwith aninputsobject — starts a run and returns a kickoff id. It also accepts webhook callbacks (taskWebhookUrl,stepWebhookUrl,crewWebhookUrl) if you have somewhere to receive them.GET /status/{kickoff_id}— poll until the run is finished, then read the result.
# Hermes — what does this crew need?
/opt/data/tools/dashboard-api-connectors/crewai/tool get /inputs
# OpenClaw — start a run
/home/node/.openclaw/tools/dashboard-api-connectors/crewai/tool \
post /kickoff '{"inputs":{"topic":"AI agents"}}'In normal use nobody types these. Ask the bot for the thing the crew produces and it works out the sequence.
Kick Off and Poll — Do Not Await
This is the part that decides whether the integration feels good or broken. A crew often runs for minutes, and a blocking call sits silent the whole time. The connector drops a request that goes 120 seconds without data, so a design that waits on one call fails on exactly the runs you care about — the long, expensive ones.
Use the shape the API is built for: kick off, keep the id, poll /status, report back when it lands. Tell your bot that in its instructions if it needs the nudge — something as plain as “CrewAI runs are long: start them, keep the kickoff id, and check back rather than waiting.” If your crew reliably finishes in seconds, none of this matters.
Where It Lands in Your Bot
- Hermes Agent: skill at
/opt/data/skills/openclaw-launch-crewai. - OpenClaw: skill at
/home/node/.openclaw/workspace/skills/openclaw-launch-crewai.
The token stays in the client’s config rather than the skill text, and the client will not follow a redirect while carrying it.
Costs Are on the Crew’s Side
A kickoff spends whatever the crew spends — its models, its tools, its retries — and none of that goes through your bot’s model budget. Treat a chat-triggered crew as a spending endpoint: anyone who can talk to the bot can start a run. If the bot is in a group chat, say so to yourself before you connect it.
Troubleshooting
- 401 on everything. The token is from the wrong deployment, or has been rotated. It comes from that crew’s Status tab.
- Kickoff is rejected. The
inputsobject does not match what the crew declares. Call/inputsand compare field by field. - The call dies after about two minutes. You are awaiting rather than polling. Use the kickoff id and
/status. - Status says finished but the result looks empty. That is the crew, not the connector — check the run in the CrewAI dashboard, where the per-task output is visible.
Try It
Connect it, ask your bot what the crew needs, then ask it to run the crew with one real input and tell you when it is done. If you get an answer in chat without touching the CrewAI dashboard, the integration is doing its job.
Related: the Tools catalog, MCP on Hermes, LangChain, Langflow, n8n.