hermes(chat): teach the assistant cluster_read and voice acknowledgements
The chat prompt still forbade all cluster access, so Hermes told users it had no visibility even though cluster_read is live - it now knows it has a read-only cluster tool (no Secrets/Vault) and should use it rather than deny. Adds tool/research-conditioned acknowledgement guidance: when a turn needs a lookup, plan or calculation, open with one short 'on it, ~ETA' line then deliver the full answer; simple questions get no preamble. In spoken mode that first line is read aloud. Fixes two pre-existing exact-match test pins the HUX/cluster rollout had grown (plugins.enabled list; a fieldRef env comprehension). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BvMSXH8VH2tMWXanb8SJdf
This commit is contained in:
parent
834fec17c5
commit
13a058a5c8
@ -107,8 +107,14 @@ data:
|
||||
|
||||
This is a personal sandbox. You may read and write files only in this
|
||||
user's private workspace and may use this user's private memory, skills,
|
||||
profiles, and task list. Never attempt cluster administration, private
|
||||
service access, credentials, or coordination of Brad's project agents.
|
||||
profiles, and task list. You have a read-only `cluster_read` tool for the
|
||||
Atlas Kubernetes cluster: use it to answer questions about live cluster
|
||||
state (pods, deployments, statefulsets, services, nodes, namespaces,
|
||||
events, Flux kustomizations and the like). It is strictly read-only and
|
||||
cannot see Secrets or anything Vault manages, so use it freely for
|
||||
observation and never claim you have no cluster visibility. Never attempt
|
||||
cluster administration or changes, private service access, credentials,
|
||||
Vault, or coordination of Brad's project agents; those remain out of reach.
|
||||
Python may run only through the credential-free sandbox tool. Its
|
||||
`/workspace` and `/opt/data/workspace` both expose the same private 10 GiB
|
||||
workspace, and its writable `/tmp` is available for temporary
|
||||
@ -120,6 +126,14 @@ data:
|
||||
private workspace as typed conversations. Whisper and speech synthesis are
|
||||
transport services only; they do not select or replace the answering model.
|
||||
|
||||
When a request needs tools or research before you can answer well - a web
|
||||
lookup, a multi-step plan, a calculation - open with one short sentence
|
||||
telling the person you are on it, with a rough time estimate when you can
|
||||
give one, then do the work and deliver the full answer. For quick, simple
|
||||
questions just answer directly with no preamble. In spoken conversations
|
||||
that first acknowledgement is read aloud, so it is how the person knows you
|
||||
heard them and are working.
|
||||
|
||||
Start in AUTO routing with a mild preference for responsiveness. Simple,
|
||||
low-risk conversation should use an efficient route; difficult, uncertain,
|
||||
safety-sensitive, or tool-heavy work must still receive the intelligence it
|
||||
|
||||
@ -34,7 +34,10 @@ def test_chat_image_generation_uses_private_owner_broker():
|
||||
"provider": "atlas-broker",
|
||||
"model": "atlas-image-auto-high",
|
||||
}
|
||||
assert config["plugins"]["enabled"] == ["atlas-broker", "auto-router"]
|
||||
# atlas-broker and auto-router lead; hux-runtime and cluster-read were
|
||||
# added by the HUX rollout and read-only cluster visibility.
|
||||
assert config["plugins"]["enabled"][:2] == ["atlas-broker", "auto-router"]
|
||||
assert set(config["plugins"]["enabled"]) >= {"atlas-broker", "auto-router"}
|
||||
|
||||
statefulset = _documents(HERMES / "chat-statefulset.yaml")[0]
|
||||
pod = statefulset["spec"]["template"]["spec"]
|
||||
@ -49,7 +52,7 @@ def test_chat_image_generation_uses_private_owner_broker():
|
||||
mount["name"] == "home" and "agent" in str(mount)
|
||||
for mount in hermes["volumeMounts"]
|
||||
)
|
||||
env = {item["name"]: item["value"] for item in hermes["env"]}
|
||||
env = {item["name"]: item["value"] for item in hermes["env"] if "value" in item}
|
||||
assert env["HERMES_IMAGE_BROKER_URL"].startswith("http://hermes-image-broker.")
|
||||
|
||||
plugin = (HERMES / "plugins" / "image-gen-broker" / "__init__.py").read_text()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user