Build integrated IS/BS/CF financial workbooks in Excel.
The English summary is being prepared. Showing the original description.
Agent mesh: master/worker nodes, HTTP delegation, heartbeat.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Turn multiple machines (or processes) into a coordinated agent mesh with master/worker topology, HTTP task delegation, heartbeat health monitoring, and local-first fallback when remote nodes are unreachable.
┌──────────────┐
│ Master Node │ (port 8900)
│ (orchestrator)│
└──────┬───────┘
│
┌────────────┼────────────┐
│ │ │
┌──▼───┐ ┌───▼──┐ ┌────▼───┐
│Worker│ │Worker│ │Worker │
│ 1 │ │ 2 │ │ 3 │
└──────┘ └──────┘ └────────┘
Port 8901 Port 8902 Port 8903
.agent-mesh/nodes.json./run task requests, executes
them locally, returns results.# Shared secret for request authentication (all nodes must share it)
export OPENAMER_MESH_SECRET="your-secure-random-string-here"
# Optional: custom data directory
export OPENAMER_MESH_HOME="$HOME/.openamer/agent-mesh"
# Optional: auto-register worker with master on startup
export OPENAMER_MESH_MASTER="http://10.0.0.1:8900"
python scripts/agent-mesh.py start
# or with custom port:
python scripts/agent-mesh.py start --port 8900 --host 0.0.0.0
# On worker machine 1:
python scripts/agent-mesh.py node --port 8901 --master-url http://10.0.0.1:8900
# On worker machine 2:
python scripts/agent-mesh.py node --port 8902 --master-url http://10.0.0.1:8900
# Standalone worker (no master auto-registration):
python scripts/agent-mesh.py node --port 8901
# Then manually register:
python scripts/agent-mesh.py register --host 10.0.0.5 --port 8901 --capabilities code shell
agent-mesh.py startStart the master orchestrator node.
| Flag | Default | Description |
|---|---|---|
--port / -p | 8900 | HTTP listen port |
--host | 0.0.0.0 | Bind address |
--capabilities / -c | code shell delegate | Node capabilities |
agent-mesh.py nodeStart a worker node.
| Flag | Default | Description |
|---|---|---|
--port / -p | 8901 | HTTP listen port |
--host | 0.0.0.0 | Bind address |
--capabilities / -c | code shell | Node capabilities |
--master-url / -m | (none) | Auto-register with this master URL |
agent-mesh.py statusList all known nodes with health status.
agent-mesh.py delegate <task> --to <node>Delegate a task string to a named node. Falls back to local execution if the remote node is dead.
! run as shell commands on the target.agent-mesh.py register --host <ip> --port <port>Manually register a node without running a server.
/ping call carries the shared X-Mesh-Token header.✓ for alive and ✗ for dead, plus miss count.X-Mesh-Token matching OPENAMER_MESH_SECRET.secrets.compare_digest() to prevent timing attacks.OPENAMER_MESH_SECRET is unset, authentication is skipped (insecure —
only use on trusted networks).User/Agent ──> delegate(task, node)
│
┌─────▼─────┐
│ Node alive?│
└─────┬─────┘
┌─────▼─────┐ ┌──────────────────┐
YES │ HTTP POST │ │ Task executed │
│ /run │──────>│ on remote node │
└─────────────┘ └──────────────────┘
┌──────────────────┐
NO │ Local fallback │
│ (_run_task_locally)│
└──────────────────┘
Node state is stored in ~/.openamer/agent-mesh/nodes.json:
{
"nodes": [
{
"node_id": "node-a1b2c3d4",
"host": "10.0.0.5",
"port": 8901,
"capabilities": ["code", "shell"],
"role": "worker",
"last_seen": 1735728000.0,
"missed_heartbeats": 0,
"alive": true,
"last_error": null
}
]
}
A cron job runs every 5 minutes to check all mesh nodes. Enable via:
python -c "
from cron.jobs import create_job
create_job({
'id': 'mesh-health-check',
'name': 'Agent Mesh Health Check',
'schedule': '*/5 * * * *',
'script': 'python scripts/agent-mesh.py status',
'enabled': True,
})
"
Or manually add to ~/.openamer/cron/jobs.json:
{
"id": "mesh-health-check",
"name": "Agent Mesh Health Check",
"schedule": "*/5 * * * *",
"script": "python scripts/agent-mesh.py status",
"enabled": true
}
OPENAMER_MESH_SECRET.
Rotate it by restarting all nodes with the new value.agent-mesh.py start).python explicitly; the script won't #!/usr/bin/env python3
directly. Use py -3 if the python launcher is available.# 1. Smoke test — start master in background
OPENAMER_MESH_SECRET=test123 python scripts/agent-mesh.py start --port 18900 &
sleep 2
# 2. Check status (should show master node)
OPENAMER_MESH_SECRET=test123 python scripts/agent-mesh.py status
# 3. Start a worker and register
OPENAMER_MESH_SECRET=test123 python scripts/agent-mesh.py node --port 18901 --master-url http://127.0.0.1:18900 &
sleep 2
# 4. Verify both nodes appear
OPENAMER_MESH_SECRET=test123 python scripts/agent-mesh.py status
# 5. Delegate a task
OPENAMER_MESH_SECRET=test123 python scripts/agent-mesh.py delegate "!echo hello mesh" --to node
# 6. Kill worker, check dead status, delegate again (should fall back to local)
kill %2
OPENAMER_MESH_SECRET=test123 python scripts/agent-mesh.py status
# 7. Cleanup
kill %1
a2a-swarm — Cryptographic identity, signed skills/insights, GitHub mesh.multi-agent-orchestration — In-process swarm patterns (fan-out, debate).crew-manager — Role-based CrewAI-style team orchestration (Dev/Reviewer).No reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Build integrated IS/BS/CF financial workbooks in Excel.
The English summary is being prepared. Showing the original description.
Run and grow the OpenAmer Agent-to-Agent swarm: identity, trust, node-to-node ask, signed skill/insight sharing, and the autonomous self-learning loop.
The English summary is being prepared. Showing the original description.
Use for A/B experiments on OpenAmer configs and skills.
The English summary is being prepared. Showing the original description.
Roleplay a hostile user to find and triage UX pain points.
The English summary is being prepared. Showing the original description.
Use for agentic commerce payments tasks. Candidate synthesized from trend radar; awaiting trial promotion.
The English summary is being prepared. Showing the original description.
Give the agent its own inbox: send and receive email.
The English summary is being prepared. Showing the original description.