fix(honcho): disable AI self-observation by default - #48096
Conversation
When ai_observe_me is true, Honcho absorbs user facts from the AI's own replies into the AI peer's self-representation. Default it off across the config chain so directional mode keeps AI observeOthers without observeMe. Co-authored-by: Cursor <cursoragent@cursor.com>
Required for Hermes contributor attribution CI on PRs from this checkout. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Related: #48092 (earlier closed attempt at the same fix, same author). This open PR is the active version — disables |
AI observeMe is off by default in directional mode; document the new semantics and use-case table in honcho.md and memory-providers.md. Co-authored-by: Cursor <cursoragent@cursor.com>
Concrete example: what goes wrong with Honcho rolesHoncho models a conversation as two peers — a
The bug is the AI peer's The conversationWhat should happenThe user stated a fact about themselves → it belongs to the user peer: What actually happens with
|
|
Thanks for tracing the AI-peer attribution path and covering both config resolution and the no-config manager fallback. The production premise is confirmed on current main: Problems
Suggested changes
Automated hermes-sweeper review. |
GottZ
left a comment
There was a problem hiding this comment.
This was generated by AI during triage.
Summary
Two PRs address the same Honcho attribution bug by changing the directional/default AI peer configuration from self-observation enabled to ai_observe_me=false while retaining ai_observe_others=true. #48092 contains the core config, fallback, and regression-test changes; #48096 carries the same fix plus partial documentation updates and is the active version.
Related pull requests
- #48092 [closed]
duplicate— (+35/-6) — superseded duplicate of #48096: The diff changes the directional preset,HonchoClientConfig, and the no-config session fallback to disable AI self-observation, with tests covering those defaults. Although closed, it remains relevant as the earlier implementation of the same fix and was explicitly superseded by the active #48096. - #48096
related— (+42/-13) — keep open with a salvage path: The diff preserves the complete core fix and regression coverage from #48092 and additionally updates several English documentation surfaces. This agrees with the maintainer-botkeep_openreview, but the salvage path must address its concrete blockers: updateplugins/memory/honcho/cli.py:830,optional-skills/autonomous-ai-agents/honcho/SKILL.md:93-110, andwebsite/i18n/zh-Hans/docusaurus-plugin-content-docs/current/user-guide/features/honcho.md:124,166, and correct the contradictory common-pattern guidance atwebsite/docs/user-guide/features/honcho.md:214to useai.observeMe=false, ai.observeOthers=true.
Duplicates
#48092 and #48096 implement essentially the same production and test changes; #48096 is the active, broader version, while #48092 is the closed superseded duplicate.
Suggested consolidation
Keep #48096 open with a salvage path: retain its config, session-fallback, tests, and partial documentation changes, then reconcile the remaining user-facing surfaces identified by the maintainer-bot review before reassessment. Keep #48092 closed as a duplicate superseded by #48096.
Complex graph
flowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
subgraph Dup48092 ["PRs duplicating each other"]
P48092["PR #48092 (closed)"]
P48096["PR #48096 (open)"]
end
class P48092 closed
class P48096 open
class P48096 target
click P48092 "https://github.com/NousResearch/hermes-agent/pull/48092"
click P48096 "https://github.com/NousResearch/hermes-agent/pull/48096"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label).
Cross-PR triage: Reviewed 2 pull requests and 0 issues in this complex. Each diff was read against this issue; Assessment working set: 19 kB of PR diffs, 3 kB of issue/PR text, 2 kB of discussion (3 comments), 0 verify verdicts. verdicts reflect diff content, not PR titles. Part of an automated triage batch.
Problem
With
ai_observe_me: true, Honcho treats the AI peer's own messages as input for its self-representation. When the model answers questions about the user, it repeats user facts in its replies and those facts land under AI Self-Representation instead of the user peer.Example: user says "I play tennis on Tuesdays" → AI replies "Got it, you play tennis on Tuesdays" → Honcho stores tennis under the AI persona, not the user.
Solution
Set
ai_observe_medefault tofalsein:HonchoClientConfigdataclass default"directional"observation presetHonchoSessionManagerfallback when no config is passedAI still observes the user via
ai_observe_others: true. Opt back in explicitly:Also maps
lebedyncrsinAUTHOR_MAPfor contributor attribution CI.Test plan
scripts/run_tests.sh tests/honcho_plugin/test_client.py tests/honcho_plugin/test_session.py tests/honcho_plugin/test_empty_profile_hint.py- 207 passedtest_directional_preset_disables_ai_self_observationtest_ai_self_observation_off_without_config