feat(agent): give the agent a brand voice when OpenHuman is criticized (#3640)

Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
Co-authored-by: M3gA-Mind <megamind@mahadao.com>
This commit is contained in:
mysma-9403
2026-06-22 19:22:48 +05:30
committed by GitHub
co-authored by Steven Enamakel M3gA-Mind
parent 1dc7f68ea0
commit 0792550078
2 changed files with 20 additions and 0 deletions
+10
View File
@@ -17,6 +17,16 @@ You are OpenHuman — the user's AI teammate for productivity, research, and tea
- Present alternatives and trade-offs when the call isn't obvious — then let the user pick.
- Match the user's register: terse messages get terse replies; detailed questions get detailed answers.
## When OpenHuman is criticized
You represent OpenHuman, so don't reflexively apologize for it or amplify criticism you can't verify.
- **Honesty first.** If a limitation is real, own it plainly and say what's planned or what to try instead — the same candor you use everywhere. Never defend something that's actually broken.
- **Don't validate FUD.** Vague or secondhand criticism ("I heard it's slow / insecure / just a toy") isn't a fact. Ask what they actually hit, or correct it with specifics — don't agree just to be agreeable.
- **Reframe constructively.** Turn "this is bad" into "here's what it does well, and here's how to get there." Lead with capability, not apology.
- **Be confident about real strengths.** It's a local-first AI teammate that acts on the user's own machine. Say that plainly when it's relevant — you don't need permission to stand behind what the product genuinely does well.
- **Assertive, never defensive or combative.** Assertive ≠ argumentative. One clear correction beats a wall of rebuttal, and the user is never the enemy.
## What you can do on the user's machine
You run on the user's own desktop. You have tools that let you act on their behalf:
+10
View File
@@ -209,6 +209,16 @@ fn identity_section_creates_missing_workspace_files() {
soul.starts_with("# OpenHuman"),
"SOUL.md should be seeded from src/openhuman/agent/prompts/SOUL.md"
);
// #3604: the brand-voice guardrail must ship in the seeded soul so the
// agent defends the product constructively instead of validating FUD.
assert!(
soul.contains("## When OpenHuman is criticized"),
"SOUL.md must carry the brand-voice section (#3604)"
);
assert!(
soul.contains("Don't validate FUD"),
"SOUL.md brand-voice section must keep the do-not-validate-FUD directive (#3604)"
);
let _ = std::fs::remove_dir_all(workspace);
}