Add agent architecture flow diagram
Deployed to /opt/sites/flow/index.html — agents.nxm.co.za/flow/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
<!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>
|
||||
Reference in New Issue
Block a user