Handoff: Vitto Orchestration Completeness — OpenClaw Parity Audit

Audit backend-vitto-api's orchestration infrastructure against OpenClaw's architecture. All 7 capabilities exist as code but may not be wired end-to-end.

Handoff: Vitto Orchestration Completeness — OpenClaw Parity Audit

For Session 139 | Created February 23, 2026

Context

The user observed that backend-vitto-api is supposed to function like OpenClaw — an open-source AI agent orchestration framework (100k+ GitHub stars, Feb 2026) that provides a gateway, agentic loop, skills, MCP, persistent memory, multi-agent coordination, and monitoring.

A quick audit of apis/backend-vitto-api/src/app/ confirms all 7 capabilities exist as code:

Capability Folder Key Service
Gateway / Control Plane engine/ VittoEngineService (4-phase workflow)
Agentic Loop engine/ AgentLoopService (LLM ↔ tools until task_complete)
Skills / Tools engine/, tools/ SkillManagerService, ToolRegistryService
MCP Integration mcp-server/ Full MCP server with tool definitions
Persistent Memory mind/ VittoMemoryService (vector-embedded), AgentSessionSchema
Multi-Agent Coordination a2a/, engine/ A2A protocol bridge, DelegationManagerService
Monitoring / Observability proactive/ ProactiveMonitorService, health checks, SSE metrics

The problem: These capabilities may exist in isolation. Session 138 revealed that the module generation pipeline (the most visible user-facing feature) was completely disconnected from the frontend, had half-built deployment, and crashed from type mismatches. If the flagship pipeline was this broken, the broader orchestration system likely has similar integration gaps.

What the Next Agent Should Investigate

1. Is the Agentic Loop Actually Used?

The module-generation/ pipeline runs a fixed 7-phase sequence (ENHANCE→ANALYZE→DECOMPOSE→PLAN→EXECUTE→INTEGRATE→DEPLOY). It does NOT use the AgentLoopService from engine/agent-loop.service.ts.

Question: Should module generation use the agentic loop instead of a hardcoded phase sequence? OpenClaw's agents reason about what to do next — they don't follow a fixed script. The agentic loop could:

2. Are Skills/Tools Registered for Module Generation?

The tools/tool-registry.service.ts and engine/skill-manager.service.ts exist, but does the module generation pipeline register its capabilities as tools? In OpenClaw, each capability is a "skill" that any agent can invoke. If module generation isn't registered as a skill, other agents can't delegate generation tasks.

Check: Are there tool definitions in mcp-server/ for generation? Can the agentic loop invoke module generation as a tool?

3. Does Multi-Agent Actually Work?

a2a/ implements the Google Agent-to-Agent protocol. engine/delegation-manager.service.ts handles agent-to-agent messaging.

Questions:

4. Is Memory Integrated with Generation?

mind/vitto-memory.service.ts provides vector-embedded persistent memory. But does the module generation pipeline USE it?

Questions:

5. Cost Guard and Strategy

strategy/cost-guard.service.ts exists. OpenClaw discovered that 10 agents running 24/7 creates 10-50x cost escalation.

Questions:

6. End-to-End Flow Completeness

Session 138 fixed the module generation pipeline (frontend → Vitto → backend-ai-api). But module generation is just one "skill." The complete orchestration should support:

Question: Which of these flows actually work end-to-end vs exist only as infrastructure?

OpenClaw Reference Architecture

For comparison, OpenClaw's architecture:

User → Gateway → Agent Reasoning Loop
                  ├── Skills (file ops, shell, email, web, calendar)
                  ├── MCP Tools (extended capabilities)
                  ├── Memory (vector-embedded, persistent)
                  ├── Agent-to-Agent (session sharing, delegation)
                  └── Monitoring (ClawDeck — sessions, logs, alerts, costs)

Key OpenClaw differentiators:

Files to Read

Area Files
Engine / Core apis/backend-vitto-api/src/app/engine/vitto-engine.service.ts, agent-loop.service.ts, delegation-manager.service.ts, skill-manager.service.ts
Module Generation apis/backend-vitto-api/src/app/module-generation/ (16 files)
A2A apis/backend-vitto-api/src/app/a2a/
Memory apis/backend-vitto-api/src/app/mind/
Tools apis/backend-vitto-api/src/app/tools/
Strategy apis/backend-vitto-api/src/app/strategy/
Proactive apis/backend-vitto-api/src/app/proactive/
MCP Server apis/backend-vitto-api/src/app/mcp-server/

Session 138 Context (What Was Fixed)

The coding agent fixed the following in Session 138 — the next agent should NOT re-investigate these:

  1. Frontend→Vitto wiring: workflow-state.service.ts now calls Vitto's GET /module-generation/start SSE endpoint instead of Pipeline A
  2. DEPLOY phase completion: Vitto now calls deploy-modules on backend-ai-api after persisting modules
  3. enhancedPrompt crash: Fixed type mismatch (object vs string) with getEnhancedPromptTitle() helper
  4. Systemic type mismatches: Added normalizer functions for ANALYZE, DECOMPOSE, PLAN phases
  5. SSE event translation: Frontend translates module-gen.* events to phase_start/workflow_complete format

Deliverables Expected

  1. Gap analysis document: What works end-to-end vs what's infrastructure-only
  2. Integration map: Which services call which, and where the chains break
  3. Priority recommendations: What to wire up first for maximum user impact
  4. Comparison table: Vitto vs OpenClaw feature-by-feature with status (working/exists-but-broken/missing)

MCP Decisions from S138

Query find_similar({ query: "pipeline orchestration vitto generation" }) for full decision history.