diff --git a/docs/turn-loop/claude-invocation.md b/docs/turn-loop/claude-invocation.md index b1fe15f0..992b6314 100644 --- a/docs/turn-loop/claude-invocation.md +++ b/docs/turn-loop/claude-invocation.md @@ -260,8 +260,8 @@ needs to `chown` a bind mount), once at startup: (hive-qualified `name@domain` form), `{hive_identity}` (for example `` on hive `pr1ma` ``; empty when `HYPERHIVE_HIVE_NAME` is unset), and `{swarm_identity}` (same - shape for the swarm). The template itself names the operator's - pronouns (`she/her`); no option sets them. + shape for the swarm). The template names no pronouns for the + operator, and tells agents to call them the operator. When you enable `services.hyperhive.agent.docs.enable`, `HIVE_DOCS_DIR` is present in the environment and `render()` appends a one-sentence pointer telling the agent where the docs live. diff --git a/hive-agent/prompts/system.md b/hive-agent/prompts/system.md index 9e947970..1fce9027 100644 --- a/hive-agent/prompts/system.md +++ b/hive-agent/prompts/system.md @@ -1,4 +1,4 @@ -You are hyperhive agent `{label}` (qualified: `{qualified_label}`){hive_identity}{swarm_identity} in a multi-agent system. The operator (the human at the dashboard) uses **she/her** pronouns — use them naturally when you refer to them in third person (e.g. when relaying to a peer or the manager). When you're talking to or about a peer on a different hive, use the qualified form (`name@hive`) so the operator + peers can disambiguate; within your own hive the short form is fine. +You are hyperhive agent `{label}` (qualified: `{qualified_label}`){hive_identity}{swarm_identity} in a multi-agent system. The operator is the human at the dashboard; say "the operator" when you mention the operator in third person (e.g. when relaying to a peer or the manager). When you're talking to or about a peer on a different hive, use the qualified form (`name@hive`) so the operator + peers can disambiguate; within your own hive the short form is fine. Tools (hyperhive surface). Full signature + behavior for each comes from the tool's own MCP description (you already received it via the MCP tool schema) — this is just the map of what exists and which ones are gated, so you know where to look: diff --git a/hive-agent/src/prompt.rs b/hive-agent/src/prompt.rs index 88933406..7ca58e82 100644 --- a/hive-agent/src/prompt.rs +++ b/hive-agent/src/prompt.rs @@ -232,11 +232,12 @@ shared closer } #[test] - fn render_substitutes_label_and_keeps_the_pronoun_line() { + fn render_substitutes_label_and_names_no_operator_pronouns() { // Real template's first agent line. let rendered = render(&PRODUCTION_TEMPLATE, "alice", None, None, None); assert!(rendered.contains("hyperhive agent `alice`")); - assert!(rendered.contains("uses **she/her** pronouns")); + assert!(rendered.contains("say \"the operator\"")); + assert!(!rendered.contains("pronoun")); assert!(!rendered.contains("{label}")); assert!(!rendered.contains("{operator_pronouns}")); } diff --git a/nix/host-modules/hive-options-removed.nix b/nix/host-modules/hive-options-removed.nix index 70e45140..d33315ca 100644 --- a/nix/host-modules/hive-options-removed.nix +++ b/nix/host-modules/hive-options-removed.nix @@ -3,7 +3,7 @@ # # A definition of any of them is ignored and produces a warning, so a host # that still sets one keeps evaluating. The agents' system prompt -# (hive-agent/prompts/system.md) names the operator's pronouns itself, the +# (hive-agent/prompts/system.md) names no pronouns for the operator, the # harness (hive-agent/src/harness_state.rs) holds the per-model context # windows it uses until a turn reports the model's own, every OTEL exporter # exports every 60 seconds (claude at its SDK default, the rest by a fixed @@ -44,8 +44,9 @@ in config.warnings = removed "c0re.operatorPronouns" cfg.c0re.operatorPronouns '' - the operator's pronouns will be a per-operator profile setting. Until - then every agent's system prompt says she/her. + agents' system prompts name no pronouns for the operator and say "the + operator". Pronouns will come from a per-operator profile setting, which + is an open hyperhive forge issue. '' ++ removed "c0re.contextWindowTokens" cfg.c0re.contextWindowTokens '' the agent harness uses the context window the model reports after each