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
|
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,
|
user's private workspace and may use this user's private memory, skills,
|
||||||
profiles, and task list. Never attempt cluster administration, private
|
profiles, and task list. You have a read-only `cluster_read` tool for the
|
||||||
service access, credentials, or coordination of Brad's project agents.
|
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
|
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 `/opt/data/workspace` both expose the same private 10 GiB
|
||||||
workspace, and its writable `/tmp` is available for temporary
|
workspace, and its writable `/tmp` is available for temporary
|
||||||
@ -120,6 +126,14 @@ data:
|
|||||||
private workspace as typed conversations. Whisper and speech synthesis are
|
private workspace as typed conversations. Whisper and speech synthesis are
|
||||||
transport services only; they do not select or replace the answering model.
|
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,
|
Start in AUTO routing with a mild preference for responsiveness. Simple,
|
||||||
low-risk conversation should use an efficient route; difficult, uncertain,
|
low-risk conversation should use an efficient route; difficult, uncertain,
|
||||||
safety-sensitive, or tool-heavy work must still receive the intelligence it
|
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",
|
"provider": "atlas-broker",
|
||||||
"model": "atlas-image-auto-high",
|
"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]
|
statefulset = _documents(HERMES / "chat-statefulset.yaml")[0]
|
||||||
pod = statefulset["spec"]["template"]["spec"]
|
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)
|
mount["name"] == "home" and "agent" in str(mount)
|
||||||
for mount in hermes["volumeMounts"]
|
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.")
|
assert env["HERMES_IMAGE_BROKER_URL"].startswith("http://hermes-image-broker.")
|
||||||
|
|
||||||
plugin = (HERMES / "plugins" / "image-gen-broker" / "__init__.py").read_text()
|
plugin = (HERMES / "plugins" / "image-gen-broker" / "__init__.py").read_text()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user