Architektur
ToolMesh ist eine Go-Middleware, die die Ausführung von Tool-Calls zwischen KI-Agenten und Backend-Infrastruktur orchestriert, autorisiert und absichert.
Ausführungs-Pipeline
Abschnitt betitelt „Ausführungs-Pipeline“Jeder Tool-Call durchläuft eine Fail-Closed-Pipeline. Wenn ein Schritt ablehnt (AuthZ, Gate), wird die gesamte Ausführung gestoppt. Keine Teilergebnisse gelangen durch.
Die sechs Säulen
Abschnitt betitelt „Die sechs Säulen“| Säule | Implementierung | Basiert auf |
|---|---|---|
| Any Backend | MCP-Server (HTTP/STDIO) + REST-APIs via DADL | Go MCP SDK + DADL-Parser |
| Code Mode | list_tools + execute_code — LLMs schreiben JS statt JSON | AST-geparste Tool-Calls |
| Audit | Jeder Tool-Call wird strukturiert protokolliert | slog (Write-only) oder SQLite (abfragbar) |
| Authorization | User → Plan → Tool-Beziehungen | OpenFGA |
| Credential Store | Secrets werden zur Laufzeit injiziert, nie in Prompts | Umgebungsvariablen (CREDENTIAL_*), erweiterbar |
| Output Gate | JS-Policies validieren Ein-/Ausgaben | goja (Go JS-Engine) |
Erweiterungsmodell
Abschnitt betitelt „Erweiterungsmodell“Drei Komponenten sind über ein Registry-Pattern erweiterbar (inspiriert von Go’s database/sql-Treibern):
| Komponente | Registry-Funktion | Built-in | Konfiguration |
|---|---|---|---|
| Credential Store | credentials.Register() | embedded (Umgebungsvariablen) | CREDENTIAL_STORE=<name> |
| Tool Backend | backend.Register() | mcp, rest (DADL), echo | config/backends.yaml |
| Gate Evaluator | gate.RegisterEvaluator() | goja (JavaScript) | GATE_EVALUATORS=<list> |
Erweiterungen registrieren sich über init()-Funktionen. Enterprise-Erweiterungen leben in einem separaten Modul und werden über Go Build-Tags eingebunden:
go build -tags enterprise ./cmd/toolmeshEnterprise-Erweiterungen (geplant)
Abschnitt betitelt „Enterprise-Erweiterungen (geplant)“| Komponente | Erweiterung | Beschreibung |
|---|---|---|
| Credential Store | InfisicalStore | Infisical Secrets Manager Integration |
| Credential Store | VaultStore | HashiCorp Vault / OpenBao Integration |
| Gate Evaluator | Compliance-LLM | LLM-basierte Inhaltsklassifizierung |
Projektstruktur
Abschnitt betitelt „Projektstruktur“toolmesh/├── cmd/│ └── toolmesh/ # Haupt-Einstiegspunkt (MCP-Server)├── config/│ └── openfga/ # Autorisierungsmodell (model.fga), Tuples (tuples.json), Setup-Script├── internal/│ ├── mcp/ # MCP-Server (Streamable HTTP + STDIO)│ ├── backend/ # ToolBackend-Interface + MCPAdapter + RESTAdapter│ ├── executor/ # ExecuteTool-Pipeline (AuthZ → Creds → Gate → Exec → Audit)│ ├── audit/ # Audit-Store-Interface + log/sqlite-Implementierungen│ ├── authz/ # OpenFGA-Autorisierung│ ├── credentials/ # Credential-Store-Interface + EmbeddedStore│ ├── gate/ # Output Gate (goja Policy-Engine)│ ├── userctx/ # UserContext-Propagierung│ └── config/ # Umgebungsbasierte Konfiguration├── config/ # Backend-Konfiguration (backends.yaml, users.yaml, apikeys.yaml)├── tools/ # TypeScript Tool-Definitionen (kanonische Quelle)├── policies/ # JavaScript Gate-Policies└── docs/ # Dokumentation