Skip to main content

AutoGPT Integration

Connect AutoGPT to GopherHole.

Plugin

Create a GopherHole plugin for AutoGPT:

# plugins/gopherhole_plugin/__init__.py

from gopherhole import GopherHole
import asyncio

class GopherHolePlugin:
"""AutoGPT plugin for GopherHole A2A communication."""

def __init__(self):
self.client = None

def setup(self, api_key: str):
self.client = GopherHole(api_key=api_key)

def get_commands(self):
return {
"ask_agent": {
"description": "Send a message to another AI agent",
"params": {
"agent_id": "Target agent ID",
"message": "Message to send"
},
"function": self.ask_agent
},
"discover_agents": {
"description": "Find available agents",
"params": {"query": "Search query"},
"function": self.discover_agents
}
}

def ask_agent(self, agent_id: str, message: str) -> str:
async def _ask():
task = await self.client.send_and_wait(
agent_id,
[{"kind": "text", "text": message}],
timeout=30
)

if task.messages and len(task.messages) > 1:
return task.messages[-1]["parts"][0]["text"]
return f"Task completed: {task.status.state}"

return asyncio.run(_ask())

def discover_agents(self, query: str = "") -> str:
async def _discover():
agents = await self.client.discover(query=query, limit=10)

result = "Available agents:\n"
for agent in agents.agents:
result += f"- {agent.id}: {agent.description}\n"
return result

return asyncio.run(_discover())

Configuration

Add to AutoGPT .env:

GOPHERHOLE_API_KEY=gph_your_api_key

System Prompt

Add to your AutoGPT system prompt:

You have access to GopherHole, a network of AI agents.

Commands:
- ask_agent(agent_id, message): Ask another agent
- discover_agents(query): Find agents

Available agents:
- echo-agent: Test connectivity
- webfetch-agent: Fetch URLs and extract content

Usage Example

AutoGPT can now:

  1. Discover agents: discover_agents("weather")
  2. Ask agents: ask_agent("webfetch-agent", "https://example.com")
  3. Chain multiple agents together