-
Notifications
You must be signed in to change notification settings - Fork 5.2k
A Tool That Turns Any Domain into a Live Agent #3164
-
Feature request related to a problem? Please describe.
Currently, if I want to give my crew the ability to interact with an external service (e.g., Notion, GitHub, a custom API), I need to write a new custom Tool
for each one. This involves finding the correct API endpoint, writing boilerplate for the connection, and managing authentication details.
This process is static and adds significant friction. It limits a crew's ability to be truly autonomous, as it can only use the tools it was explicitly configured with at launch.
Describe the solution you'd like
I propose the integration of Agent Interface Discovery (AID), a simple, open standard for discovering agent endpoints via a single DNS record. Think of it as an "MX record for AI."
A service can publish a TXT
record like this:
_agent.notion.so. IN TXT "v=aid1;p=mcp;uri=https://api.notion.com/mcp"
I would like CrewAI to provide a built-in AIDTool
that can take a domain name, perform the AID lookup, and automatically configure the connection to the discovered agent. This would abstract away the entire discovery and connection process.
Describe how you'd like to see this implemented
Here is an example of the ideal developer experience:
from crewai import Agent, Task, Crew from crewai_tools import AIDTool # The proposed new tool # The AIDTool would handle the DNS lookup for 'notion.so' # and configure the connection to its MCP or OpenAPI agent in the background. notion_tool = AIDTool(domain='notion.so') # The agent can now use the Notion tool without any custom code. researcher = Agent( role='Company Researcher', goal='Pull the latest internal strategy documents from Notion', tools=[notion_tool], verbose=True ) # The task can now leverage the discovered agent's capabilities. task = Task( description='Connect to notion.so and find the document titled "Q3 Strategy 2025". Summarize its key points.', agent=researcher ) crew = Crew(agents=[researcher], tasks=[task]) result = crew.kickoff() print(result)
What are the benefits of this feature?
- Zero-Friction Tools: Drastically reduces the boilerplate code needed to connect to external services. A developer just needs to provide a domain name.
- More Autonomous Crews: This unlocks new capabilities. An agent could be tasked with "Find the agent for X service and perform Y task," allowing the crew to dynamically discover and use tools it wasn't explicitly programmed with.
- Future-Proofs CrewAI: Connects CrewAI to a growing, open, and decentralized ecosystem of agents, rather than relying on a hardcoded registry of tool integrations.
AID is a finalized v1.0 spec with available libraries, making implementation straightforward. Integrating it would be a powerful step towards making crews more capable and autonomous.
Thank you for considering this proposal!
Learn more about the AID standard here: aid.agentcommunity.org
Beta Was this translation helpful? Give feedback.