Investigation Summary
- In NemoClaw
v0.0.92, the bundled Hermes v2026.7.1 Langfuse plugin rejects openshell:resolve:env:... values before constructing the Langfuse client.
- OpenShell
v0.0.85 can rewrite resolver placeholders embedded in Basic authentication at egress.
- Raw Langfuse keys in
/sandbox/.hermes/.env make tracing work but bypass NemoClaw's sandbox credential boundary.
- NemoClaw does not currently provide a complete managed Langfuse provider, endpoint-policy, configuration, and E2E path.
- Maintainers need to decide whether Langfuse becomes a supported Hermes integration; an upstream Hermes change may complement but does not replace the NemoClaw integration work.
Description
Hermes's bundled Langfuse plugin cannot initialize with credentials registered through NemoClaw/OpenShell. The sandbox correctly sees resolver placeholders, but Hermes requires the public and secret values to begin with pk-lf- and sk-lf- and rejects the placeholders locally before the SDK sends a request.
Expected behavior: if Langfuse is accepted as a supported Hermes integration, NemoClaw should configure it without exposing raw credentials inside the sandbox. Otherwise, the unsupported boundary should be explicit in the CLI and documentation.
Relevant source boundaries:
Reproduction Steps
- Export valid
LANGFUSE_PUBLIC_KEY=pk-lf-... and LANGFUSE_SECRET_KEY=sk-lf-... values.
- Register both as generic credentials with
nemoclaw credentials add.
- Run
nemohermes onboard and confirm the sandbox environment contains versioned openshell:resolve:env:... placeholders.
- Put the corresponding placeholders in
/sandbox/.hermes/.env as HERMES_LANGFUSE_PUBLIC_KEY and HERMES_LANGFUSE_SECRET_KEY.
- Enable the bundled Langfuse plugin and restart Hermes.
- Observe that the plugin rejects the values as placeholders and emits no traces.
- Replacing the placeholders with raw keys makes tracing work, demonstrating the unsafe workaround but exposing credentials inside the sandbox.
Environment
- NemoClaw:
v0.0.92
- Bundled Hermes:
v2026.7.1 / 0.18.0
- OpenShell credential contract:
v0.0.85
- Langfuse: self-hosted endpoint
- Host OS, Node.js, and Docker versions: not supplied; the failure occurs in the pinned Hermes plugin's local value validation
Debug Output
No debug archive is attached. The relevant Hermes agent.log warning is:
Langfuse plugin: credentials look like placeholders, traces will NOT be emitted (HERMES_LANGFUSE_PUBLIC_KEY='opensh...' (expected 'pk-lf-' prefix); HERMES_LANGFUSE_SECRET_KEY='***' (expected 'sk-lf-' prefix)).
Proposed acceptance criteria, pending scope approval
- Keep both Langfuse keys in OpenShell providers; never persist raw values in sandbox-visible files or process environment.
- Accept only exact, key-bound OpenShell resolver placeholders at the Hermes Langfuse validation boundary while retaining normal prefix checks for raw values.
- Provide a managed host-side configuration path for the self-hosted base URL and required endpoint policy.
- Prove authentication and trace ingestion through OpenShell in live E2E coverage, including credential-sanitization checks.
- Fail closed for malformed, mismatched, or unresolved placeholders.
- Coordinate or upstream the Hermes validator change when appropriate.
Checklist
Investigation Summary
v0.0.92, the bundled Hermesv2026.7.1Langfuse plugin rejectsopenshell:resolve:env:...values before constructing the Langfuse client.v0.0.85can rewrite resolver placeholders embedded in Basic authentication at egress./sandbox/.hermes/.envmake tracing work but bypass NemoClaw's sandbox credential boundary.Description
Hermes's bundled Langfuse plugin cannot initialize with credentials registered through NemoClaw/OpenShell. The sandbox correctly sees resolver placeholders, but Hermes requires the public and secret values to begin with
pk-lf-andsk-lf-and rejects the placeholders locally before the SDK sends a request.Expected behavior: if Langfuse is accepted as a supported Hermes integration, NemoClaw should configure it without exposing raw credentials inside the sandbox. Otherwise, the unsupported boundary should be explicit in the CLI and documentation.
Relevant source boundaries:
Reproduction Steps
LANGFUSE_PUBLIC_KEY=pk-lf-...andLANGFUSE_SECRET_KEY=sk-lf-...values.nemoclaw credentials add.nemohermes onboardand confirm the sandbox environment contains versionedopenshell:resolve:env:...placeholders./sandbox/.hermes/.envasHERMES_LANGFUSE_PUBLIC_KEYandHERMES_LANGFUSE_SECRET_KEY.Environment
v0.0.92v2026.7.1/0.18.0v0.0.85Debug Output
No debug archive is attached. The relevant Hermes
agent.logwarning is:Proposed acceptance criteria, pending scope approval
Checklist