OpenClaw to Hermes Migration (5/13) — Parallel Run Is Unnecessary: Transplantability of 7

0/7 platform-exclusive capabilities. Single platform + memory reinforcement is the optimal configuration.


ํ•ต์‹ฌ ์š”์•ฝ

  • Analyzes the 7 categories where Platform A outscored Platform B, evaluated under the criterion: "Can these be transplanted to B?"
  • Measurement results: full transplant 5/7, partial transplant 2/7, A-exclusive mandatory capabilities 0/7.
  • Conclusion: Running both systems in parallel yields no cost-justified benefit. Single platform + memory layer reinforcement is the optimal configuration.
  • Key takeaways: (1) the "transplantability" decision framework, (2) how to distinguish configuration/policy transplant from code transplant, (3) analysis of 3 cost categories incurred by parallel operation.

Background Frame

In the preceding comparative analysis, OpenClaw (hereafter OC) scored higher than Hermes across 7 categories. This naturally raises the question:

"Do we lose these 7 advantages upon consolidation?"

That question directly leads to: "Must we run both systems in parallel?" Since this is the architectural crux, each of the 7 categories is decomposed and transplantability is quantified.

Analysis Method

For each category, 3 items are evaluated:

  1. Transplant unit — Is it code, configuration, or policy?
  2. Transplant form — Is it a 1:1 mapping, does it need an adapter, or does it require reimplementation?
  3. Feature loss — Is there any feature loss after transplanting?

Classification symbols: full transplant (zero feature loss), partial transplant (requires some additional configuration), mandatory reimplementation (code-level rewrite required).

Transplantability Analysis of 7 Categories

1. Channel / Gateway (OC 5, Hermes 4) — Partial Transplant

OC manages a Discord main channel plus Telegram Forum 6 topics using fine-grained routing policies. Hermes's gateway/ module supports the same channel routing. The difference is that the per-topic routing policies for Telegram Forum (which messages route to which topic) are defined as 9 rules.

The transplant unit is policy, not code. Migrating the 9 rules to Hermes gateway config as YAML is sufficient. Estimated size: ~20 lines.

2. Agent Management (OC 5, Hermes 4) — Partial Transplant

OC's agent binding is composed of 8 layers (tool / model / permission / channel / isolation / memory / skill / name). Hermes profiles natively support 6 layers; the remaining 2 (fine-grained channel policy, memory access level) map cleanly by adding 2 fields to the profile definition.

Zero feature loss after transplant. This is a partial transplant case resolved by extending the profile YAML schema.

3. Memory (OC 5, Hermes 3) — Full Transplant

This is already implemented. memcore rebuilt OC's 4-tier memory hierarchy on a SQLite backend, and connects to Hermes via the MemcoreProvider adapter. memcore replaces Hermes's default MEMORY.md with its 2,200-character ceiling.

The key mechanism here is the adapter pattern: the memory backend is swapped at the provider layer without modifying the Hermes core.

4. Scheduling (OC 4, Hermes 3) — Full Transplant

OC's 9 cron entries + 7 LaunchAgents can be reconstructed 1:1 using Hermes's cron/ module + macOS LaunchAgent combination. Registering memcore CLI commands as cron entries preserves the existing schedule intact.

How it works: cron/LaunchAgent is an OS-level facility, not tied to any specific platform. The only dependency is the existence of the target CLI.

5. Plugins (OC 4, Hermes 3) — Full Transplant

External integrations such as oMLX and Scrapling are fundamentally tool registrations. They transplant by placing wrappers in Hermes's optional-skills/ directory. No OC-proprietary protocol was used.

Applicable pattern: designing external tool integrations as wrapper directory + standard interface minimizes transplant cost during platform migration.

6. Configuration Management (OC 4, Hermes 3) — Full Transplant

The config-drift detector and agent-linter are scripts, not platform features. They transfer directly as Hermes cron payloads.

The principle exposed here: things that appear to be platform features are often just a script + scheduler combination. This distinction is decisive when estimating transplant cost.

7. Context Management (OC 4, Hermes 3) — Full Transplant

The safeguard compaction behavior and softThreshold 6000 value map 1:1 to the Hermes context_compressor.py configuration. The algorithm is identical; only the parameter location changes.

Transplantability Summary

Category OC Score Transplantability Transplant Form
Channel / Gateway 5 Partial ~20 lines of gateway config
Agent Management 5 Partial 2 fields in profile YAML
Memory 5 Full memcore (already implemented)
Scheduling 4 Full cron + LaunchAgent
Plugins 4 Full optional-skills wrappers
Configuration Management 4 Full cron payload
Context Management 4 Full context_compressor config
A-exclusive mandatory: 0/7

None of the 7 categories contains a capability that is "impossible without Platform A." The transplant form stays at configuration/policy migration or adapter addition — not code-level reimplementation.

3 Cost Categories of Parallel Operation

Once transplantability is confirmed, the follow-up question is: "Isn't parallel operation safer anyway?" However, parallel operation structurally generates 3 categories of cost.

Cost 1 — Memory Synchronization Lag

For two systems to observe the same state, a sync layer is required. Sync is inherently asynchronous, so lag exists. A memory system with lag creates situations where "something written on one side isn't immediately visible on the other." This is a source of race conditions in inter-agent decision making.

Cost 2 — Doubled Operational Complexity

Two sets of cron entries, two sets of LaunchAgent plists, two log streams, two alert channels. Operational overhead scales not linearly but at O(n²) when interactions are included. On failure, determining "which side is the problem?" consumes additional diagnosis time.

Cost 3 — Routing Cognitive Load

"Should this task run on A or B?" must be evaluated for every task. This directly conflicts with the purpose of automation (reducing decision load).

Limits and Scope of Applicability

This analysis is valid for a single-user + single-host environment. The conclusion changes under the following conditions:

  • Geographically distributed multi-host — redundant operation for fault isolation is justified
  • Heterogeneous environments (e.g., macOS + Linux) — platform-specific feature availability changes the transplantability table
  • Transitional parallel operation — temporary dual operation is a risk mitigation measure, not a cost

Reusable Decision Framework

A decision template reusable for other migrations:

  1. Score both old and new platforms by category
  2. Decompose old-platform-dominant items into "transplant units (code / config / policy)"
  3. Map transplant form (1:1 / adapter / reimplementation)
  4. Accept only items with non-zero feature loss as "justification for parallel operation"
  5. If feature loss is zero, proceed with single platform + adapter configuration

The core of this framework is identifying "things that appear to be platform features but are actually configuration or scripts."

Open Questions

  • Can the memory adapter pattern (as in memcore) be applied to other backends (vector DB, graph DB) at the same cost?
  • Do the partial transplant cases (adding YAML fields) accumulate schema drift cost over time?
  • How long should old-platform logs and snapshots be retained after transplant?

Series Index (All 16 Parts)

Parts 1–6: Inventory → Mapping → Asset Review → 5-Week Spec → memcore Initial → Omission Audit Parts 7–13: Tier Gate → Heartbeat v2 → Router_Control → Vector DB → Failure Lessons → Manager/Runner → 5 Unresolved Decisions Parts 14–16: OC vs Hermes Comparison → memcore Complete → Parallel Run Unnecessary (this post)

Series overview: Series index

๋Œ“๊ธ€

์ด ๋ธ”๋กœ๊ทธ์˜ ์ธ๊ธฐ ๊ฒŒ์‹œ๋ฌผ

Agent Memory Engine (2/10) — Building an AI Agent Memory System with SQLite Alone

"ML Foundations (9/9) — PyTorch vs TensorFlow, and the Road to Local LLMs"

"RAG Core Study (14/26) — Evaluation Sets with RAGAS & DeepEval"

"ML Foundations (8/9) — Deep Learning Architectures: CNN, RNN, Attention"

"ML Foundations (7/9) — Deep Learning Training: Optimizers, Regularization, Initialization"

OpenClaw to Hermes Migration (2/13) — What to Preserve, Partially Port, or Discard

AI Agents I Built (5/7) — Building an Automated Blogger API Publishing System