OpenClaw x Fetch.ai - Secure Local Execution via Autonomous Agents
Source (example repo):
openclaw/fetchai-openclaw-orchestrator/— clone it and run commands from thefetchai-openclaw-orchestratordirectory.
A reference architecture for safe remote-to-local AI orchestration. A public Fetch agent on Agentverse plans work; a local connector on your machine executes it - without granting remote shell access or leaking sensitive data.
User --> ASI:One --> Orchestrator Agent --> [signed task plan] --> OpenClaw Connector --> Execution --> Results
| Component | Where it runs | What it does |
|---|---|---|
| ASI:One | Cloud (asi1.ai) | Natural-language objective input |
| Orchestrator Agent | Agentverse / local | Plans tasks, enforces policy, dispatches work |
| OpenClaw Connector | Your machine | Verifies, policy-checks, executes, returns results |
New to the project? Read the Technical Blog Post for a step-by-step walkthrough of how each piece was built, from agent creation through mailbox configuration to ASI:One integration.
Featured Use Case: GitHub Repo Health Analyzer
Anyone on ASI:One can type a message like "Analyze https://github.com/fastapi/fastapi" and get back a real health report with:
- Lines of code by language
- Git activity (commits, contributors, recent activity)
- Test detection (frameworks, file count)
- Dependency audit (requirements.txt, package.json, etc.)
- Best practices check (README, LICENSE, CI/CD, SECURITY.md)
- Health score with letter grade (A/B/C/D)
How it works: The Fetch agent plans the analysis, OpenClaw clones the repo into a temporary sandbox and runs static analysis tools (no code from the repo is ever executed), then returns the results through ASI:One.
Why all three technologies: An LLM alone cannot clone repos or run cloc. OpenClaw alone
is invisible to other users. A Fetch agent alone has no execution engine. Together, they
provide real tool execution (OpenClaw) accessible to anyone (Fetch/Agentverse) through
natural language (ASI:One).
See it in action: View a Sample Chat on ASI:One
Quick Start
1. Prerequisites
- Python 3.10+
- A Fetch Agentverse account & API key
- An ASI:One API key (for LLM-powered planning)
- Git (for the repo analyzer workflow)
2. Install
cd path/to/innovation-lab-examples/openclaw/fetchai-openclaw-orchestrator
python3 -m venv .venv && source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
3. Configure
Copy the example and fill in your keys:
cp .env.example .env
# Then edit .env and add your real API keys
See Environment Variables below for the full list. You will need at minimum:
AGENTVERSE_API_KEYfrom agentverse.ai/profile/api-keysASI_ONE_API_KEYfrom asi1.ai (for LLM-powered planning)
4. Set Up Demo Data
Create safe sample repositories (fake git history) for the weekly report workflow:
python scripts/setup_demo.py
This generates a demo_projects/ directory with 3 sample repos and ~12 fake
commits - no real system data is ever touched during testing.
5. Run
# Terminal 1 - Orchestrator Agent
python -m orchestrator.agent
# Terminal 2 - OpenClaw Connector (auto-pairs with orchestrator)
ORCHESTRATOR_AGENT_ADDRESS=<address-from-terminal-1> python -m connector.server
On startup the connector sends a pairing request to the orchestrator.
You should see Paired successfully in the connector logs.
6. Register Mailbox (for ASI:One access)
With the orchestrator running, register its mailbox on Agentverse so ASI:One can deliver messages to it:
python -c "
import requests, os
from dotenv import load_dotenv
load_dotenv()
resp = requests.post('http://127.0.0.1:8200/connect', json={
'user_token': os.getenv('AGENTVERSE_API_KEY'),
'agent_type': 'mailbox',
}, timeout=30)
print(resp.json())
"
You should see {'success': True, 'detail': None} and the orchestrator logs
will show Successfully registered as mailbox agent in Agentverse.
Testing from ASI:One
Once both agents are running and the mailbox is registered, go to ASI:One and send a message to the agent.
Repo Health Analyzer Prompts
| Prompt | What it does |
|---|---|
Analyze https://github.com/fastapi/fastapi | Full health report for FastAPI |
Check the health of https://github.com/pallets/flask | Health report for Flask |
Review https://github.com/fetchai/innovation-lab-examples/tree/main/openclaw/fetchai-openclaw-orchestrator | Analyze this example in the Innovation Lab repo |
Analyze https://github.com/expressjs/express | Health report for Express.js |
https://github.com/django/django | Even just a URL works |
Weekly Dev Report Prompts
| Prompt | What it does |
|---|---|
Generate my weekly dev report | Scans demo repos, generates Markdown report |
Scan my projects and create a summary, then post to Slack | 3-step: scan, report, post (Slack) |
Look at my repos and email the report to my team | 3-step: scan, report, post (email) |
Summarize: we shipped 3 features this week | Runs text summarisation |
Sample Chat
See a real conversation with the agent on ASI:One: View Sample Chat on ASI:One
What You'll See (Repo Analyzer)
Repo Health Report: fastapi/fastapi
Health Score: 8.7/10 (Grade: A)
Languages:
Python: 82.3% (48,200 lines)
Markdown: 12.1% (7,100 lines)
Project Stats:
Total Files: 1,245
Repo Size: 12.3 MB
Git Activity:
Total Commits: 3,456
Commits (last 30 days): 124
Contributors: 485
Testing:
Test Files Found: 340
Frameworks Detected: pytest
Best Practices:
README: pass
LICENSE: pass
CI/CD Pipeline: pass
SECURITY.md: pass
Running Tests
pytest # run all 68 tests
pytest -v # verbose
pytest --cov # with coverage