Expose the harness through a declared compatibility protocol. Map capabilities explicitly, return protocol-shaped errors, and reject requests that the backend cannot satisfy.Harness mimicry and service hosting
Preserve an interface while changing its implementation or host.
external_harness_compatibilityRECORD STATUSCandidate · v0.1.0UML class view
The proposed contract drawn as participant roles, received calls, and numbered dependencies.
Object interactions
The same roles and calls as a class collaboration and a numbered message sequence.
Pointcut
Where the mechanism applies. All four dimensions belong to the proposed match, not just its vocabulary.
- Context
- One harness exposes or consumes an external agent-client or service interface.
- Trigger
- A remote client invokes the adapter or a hosted backend is selected.
- Structure
- Protocol adapter, identity, capability mapping, and service boundary.
- Effect
- The external protocol is preserved while semantics and permissions are translated explicitly.
Protected contract
The obligation that clients, operators, and auditors should be able to rely on.
- Requires
- Protocol version and capability mapping are known.
- Ensures
- Requests, results, and errors satisfy the compatibility contract.
- Invariant
- Interface compatibility does not erase backend-specific authorization or effects.
- Violation
- Unsupported capabilities, disconnects, and translation errors are explicit.
Negative control
A similar function signature without protocol compatibility is insufficient.
Variation & lifecycle
The hot spot is admitted only where the protected semantics survive.
Permitted variation
ACP emulation, server hosting, transport adapter, and backend registry.
Test obligation
Test cross-backend parity, unsupported method, reconnect, and permission mapping.
Evolution question
Did harnesses evolve from mimicry toward hosted multi-backend services?
Prompt + code design
An illustrative prompt and a small design sketch for the proposed contract. Names and APIs are invented; this is not a repository excerpt.
def handle(request, backend, protocol):
if not protocol.supports(request.method):
return protocol.error("method_not_supported", request.id)
try:
result = backend.invoke(protocol.to_backend(request))
except BackendError as error:
return protocol.error(error.code, request.id, detail=error.detail)
return protocol.from_backend(result)Illustrative design sketch. Compatibility is a contract over requests, results, and errors, not a renamed endpoint. This example is a teaching aid, not implementation evidence or a conformance claim.
Detection & matching
The frozen rule that retrieves this record, the canonical source exemplar, and the control that should stay unmatched.
- Join point
external_harness_compatibility- Source locator
- See the source record.
- Lexical cue
(?i)\b(?:mimic(?:ry)?|emulat(?:e|ion)|ACP[_-]?client|agent[_-]?client[_-]?protocol)\bFrozen expression, v0.1.0. A match is a retrieval cue, not a confirmed implementation.- Aliases
- None
- Canonical exemplar
- OpenHands/software-agent-sdk
openhands-sdk/openhands/sdk/agent/acp_agent.py:1815Support: tests/sdk/agent/test_acp_agent.py:1 - Negative control
- A similar function signature without protocol compatibility is insufficient.
Scope-anchored review. pohe-agent analyze <repo> --pattern P29 anchors the cue to its enclosing declaration and checks a separate operational signature for all four pointcut dimensions. Missing roles and negative-control risks remain visible; a structural match is not E2/E3. Calibration report ↗
Repository files
Up to five public files retrieved by the frozen cue and pinned to the audited commit. A match is a place to inspect, not a confirmed implementation.
openhands-sdk/openhands/sdk/agent/acp_agent.py:1815CANONICAL SOURCE02aaif-goose/goosecrates/goose/src/acp/common.rs:4RETRIEVAL CUE03agno-agi/agnolibs/agno/agno/fs/base.py:150RETRIEVAL CUE04anomalyco/opencodepackages/cli/src/acp/agent.ts:11RETRIEVAL CUE05browser-use/browser-usebrowser_use/actor/page.py:22RETRIEVAL CUEEvidence & provenance
Each layer answers a different question. Do not substitute retrieval for review.
Source-located exemplar
A concrete source anchor is available for this proposed record. It is one exemplar, not evidence that all repositories—or every contract field—conform.
Review boundary: this candidate and its specification come from an AI-assisted study. Independent human validation remains open.
80.6% of repository families in the frozen panel have at least one current cue, historical cue, or canonical source layer. This is not confirmed prevalence.
Current lexical-cue repositories: 31 / 415c524ad65d81openhands-sdk/openhands/sdk/agent/acp_agent.py:1815tests/sdk/agent/test_acp_agent.py:1ACP-compatible agent hosting and external harness adaptation.
Exploratory retrieval cue Regex / v0.1.0
(?i)\b(?:mimic(?:ry)?|emulat(?:e|ion)|ACP[_-]?client|agent[_-]?client[_-]?protocol)\bThis expression is a discovery instrument only. A match is a retrieval cue—not a confirmed implementation, pointcut match, or contract proof.