8914d2cca8
Deployed to /opt/sites/flow/index.html — agents.nxm.co.za/flow/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
92 lines
2.9 KiB
HTML
92 lines
2.9 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>NxM Agent Architecture</title>
|
|
<style>
|
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
body { font-family: monospace; background: #0d1117; color: #c9d1d9; padding: 2rem; }
|
|
h1 { color: #58a6ff; margin-bottom: 0.25rem; }
|
|
.meta { color: #8b949e; font-size: 0.85rem; margin-bottom: 2rem; }
|
|
.meta a { color: #8b949e; }
|
|
.diagram { background: #161b22; border: 1px solid #30363d; border-radius: 6px; padding: 2rem; overflow-x: auto; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<h1>NxM Agent Architecture</h1>
|
|
<p class="meta">Communication flow between agents and services · <a href="/">← home</a></p>
|
|
<div class="diagram">
|
|
<pre class="mermaid">
|
|
%%{init: {'theme': 'dark', 'themeVariables': {'primaryColor': '#21262d', 'primaryTextColor': '#c9d1d9', 'primaryBorderColor': '#30363d', 'lineColor': '#58a6ff', 'secondaryColor': '#161b22', 'tertiaryColor': '#0d1117', 'edgeLabelBackground': '#0d1117'}}}%%
|
|
flowchart TD
|
|
subgraph sched ["Scheduler"]
|
|
cron_bran["⏰ cron 06:00 daily"]
|
|
cron_varys["⏰ cron every 15 min"]
|
|
end
|
|
|
|
subgraph agents ["One-Shot Agents"]
|
|
bran["bran-changelog"]
|
|
varys["varys-monitor"]
|
|
end
|
|
|
|
subgraph external ["External Sources"]
|
|
github["GitHub API"]
|
|
opnsense["OPNsense changelog"]
|
|
end
|
|
|
|
subgraph llm ["LLM Layer"]
|
|
hodor["hodor-gateway :8200"]
|
|
ollama["Ollama :11434"]
|
|
end
|
|
|
|
subgraph infra ["Infrastructure — 12 services"]
|
|
svc["portainer · gitea · open-webui · npm\nuptime-kuma · headscale · vaultwarden\nplane · homarr · netbox · hodor · citadel"]
|
|
end
|
|
|
|
subgraph storage ["Shared Storage — /opt/"]
|
|
sites["sites/\nchangelog/ varys/ bran/"]
|
|
agentOS["agent-os/logs/\nbran-changelog/ varys-monitor/"]
|
|
end
|
|
|
|
subgraph serving ["Serving Layer"]
|
|
nginx["agent-sites nginx"]
|
|
citadel["citadel-mcp :8300"]
|
|
end
|
|
|
|
subgraph gui ["User Interface"]
|
|
web["agents.nxm.co.za"]
|
|
openwebui["Open WebUI :3010"]
|
|
end
|
|
|
|
cron_bran --> bran
|
|
cron_varys --> varys
|
|
|
|
bran -->|fetch releases| github
|
|
bran -->|fetch changelog| opnsense
|
|
github --> bran
|
|
opnsense --> bran
|
|
bran -->|POST /ask| hodor
|
|
hodor <-->|api/chat| ollama
|
|
hodor --> bran
|
|
|
|
varys -->|HTTP GET| svc
|
|
|
|
bran -->|index.html + last-output.md| sites
|
|
bran -->|last-run.json| agentOS
|
|
varys -->|index.html + last-output.md| sites
|
|
varys -->|last-run.json| agentOS
|
|
|
|
sites --> nginx
|
|
nginx -->|NPM proxy| web
|
|
|
|
agentOS -->|list_agents / get_agent_status| citadel
|
|
sites -->|get_agent_output| citadel
|
|
citadel -->|MCP tools| openwebui
|
|
</pre>
|
|
</div>
|
|
<script src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js"></script>
|
|
<script>mermaid.initialize({startOnLoad: true});</script>
|
|
</body>
|
|
</html>
|