Skip to content

Feature: configurable agent self-observation (opt-out for root agent peer observeMe) #27

Description

@longirun

Summary

The root agent peer is always created with observeMe: true (hardcoded), so Honcho derives a self-observation model / peer_card for the agent itself on every message. For self-hosted coding-assistant deployments this produces ongoing LLM-deriver cost and DB growth with no downstream consumer. Requesting a config option to opt out.

Why this matters for our deployment

We run @honcho-ai/opencode-honcho 0.1.3 self-hosted against OpenCode 1.17.13. For a coding assistant the agent peer_card is effectively operational noise rather than a stable model of anything:

  • Sample derived observations for the agent peer:
    • opencode completed a build operation on ...
    • opencode has stopped the Gradle daemon
    • opencode is updating the 'todo' list
    • opencode is in 'assembly mode'
  • The peer_card currently holds 88+ observations / 40+ attribute lines, mostly duplicating facts already stored on the user peer (stack, projects, config).
  • These entries are never consumed in our setup, but the deriver still processes every agent message to produce them, and the representation keeps being rebuilt.

We fully understand this is intentional (README describes a "fixed observation model tuned for OpenCode") and that it is genuinely valuable for the companion / tutor use-cases Plastic Labs targets. We're not asking to change the default — only to make it configurable, in the same spirit as the removeUserPrefix flag added in 0.1.3.

Current behavior

observeMe: true for the root agent peer is hardcoded in three places:

  • dist/index.js / dist/server.js
    • buildPeerTopologyrootAgentPeer.observeMe = true (and the matching sessionPeerConfigs[rootAgentPeer.id].observeMe = true)
    • createActiveRuntimehoncho.peer(handle.activeAgentPeerId, { configuration: { observeMe: true } })

There is no config key in ~/.honcho/config.jsonhosts.opencode to override it, and PATCH /v3/workspaces/{w}/peers/{p} returns Method Not Allowed, so it cannot be flipped at runtime either.

Proposed solution

Add a config option under hosts.opencode, e.g.:

{
  "hosts": {
    "opencode": {
      "agentObserveMe": false   // default: true (backward compatible)
    }
  }
}

When false, the root agent peer would be created with observeMe: false, so no self-observations are derived for it. User-side observation (observeMe/observeOthers on the user peer) stays unchanged.

(Alternative: a more granular peerTopology override object — happy with either.)

Workaround we currently ship

In our local context-enrichment shim we simply stopped reading /peers/{agent}/context into the prompt (the "Agent Work Context" section). That removes the noise from the prompt but does not stop the writing side, so the DB and deriver cost keep accumulating — which is exactly why a plugin-level opt-out would help.

Environment

  • @honcho-ai/opencode-honcho 0.1.3
  • Self-hosted Honcho v3.0.x (local, http://127.0.0.1:8000)
  • OpenCode 1.17.13, recallMode: tools, sessionStrategy: per-directory

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions