ruth is created from a ruth archetype that runs sonnet
This commit is contained in:
parent
aff8cf629d
commit
5233259b3b
4 changed files with 236 additions and 115 deletions
|
|
@ -57,4 +57,28 @@
|
|||
prompt = builtins.readFile ./prompts/reverse-engineer.md;
|
||||
};
|
||||
};
|
||||
ruth = {
|
||||
module =
|
||||
{ lib, ... }:
|
||||
{
|
||||
services.hyperhive.agent.icon = lib.mkDefault ./icons/ruth.svg;
|
||||
};
|
||||
meta = {
|
||||
icon = builtins.readFile ./icons/ruth.svg;
|
||||
description = "The manager agent the setup assistant creates. It runs on sonnet and holds the default permissions plus manage_root_agent (it recovers the other agents), logs and metrics.";
|
||||
permissions = [
|
||||
"messaging"
|
||||
"meta"
|
||||
"inbox"
|
||||
"execution"
|
||||
"manage_root_agent"
|
||||
"logs"
|
||||
"metrics"
|
||||
];
|
||||
prompt = builtins.readFile ./prompts/ruth.md;
|
||||
inference = {
|
||||
model = "sonnet";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
18
nix/archetypes/icons/ruth.svg
Normal file
18
nix/archetypes/icons/ruth.svg
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
<svg width="300" height="300" viewBox="0 0 300 300" role="img" xmlns="http://www.w3.org/2000/svg">
|
||||
<title>ruth</title>
|
||||
<desc>Ruth archetype icon: a hub linked to three nodes, amber on dark</desc>
|
||||
<defs>
|
||||
<clipPath id="clip"><circle cx="150" cy="150" r="140"/></clipPath>
|
||||
</defs>
|
||||
<g clip-path="url(#clip)">
|
||||
<rect width="300" height="300" fill="#0a0600"/>
|
||||
<line x1="150" y1="150" x2="150" y2="70" stroke="#ffb300" stroke-width="10" stroke-linecap="round"/>
|
||||
<line x1="150" y1="150" x2="80" y2="190" stroke="#ffb300" stroke-width="10" stroke-linecap="round"/>
|
||||
<line x1="150" y1="150" x2="220" y2="190" stroke="#ffb300" stroke-width="10" stroke-linecap="round"/>
|
||||
<circle cx="150" cy="150" r="26" fill="#ffb300"/>
|
||||
<circle cx="150" cy="64" r="16" fill="none" stroke="#ffb300" stroke-width="10"/>
|
||||
<circle cx="74" cy="194" r="16" fill="none" stroke="#ffb300" stroke-width="10"/>
|
||||
<circle cx="226" cy="194" r="16" fill="none" stroke="#ffb300" stroke-width="10"/>
|
||||
</g>
|
||||
<circle cx="150" cy="150" r="140" fill="none" stroke="#ffb300" stroke-width="3" opacity="0.6"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
19
nix/archetypes/prompts/ruth.md
Normal file
19
nix/archetypes/prompts/ruth.md
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
# Ruth
|
||||
|
||||
You are the swarm's manager: the agent the operator asks first, and the one who
|
||||
recovers the others when they break. You hold the wide permissions so that the
|
||||
rest of the swarm can run with narrow ones, and you treat that as a duty, not
|
||||
a license.
|
||||
|
||||
You read before you act. When an agent misbehaves, look at its state, its logs
|
||||
and its recent turns, and say what you found before you change anything. A
|
||||
repair you can't explain is a second problem.
|
||||
|
||||
You change as little as the fix needs. Changes to other agents' configuration go
|
||||
through a pull request the operator reviews, not around it. For your own
|
||||
configuration, ask the operator for changes. When a
|
||||
request would reach beyond what the operator asked, stop and ask.
|
||||
|
||||
You keep the operator informed in short, plain messages: what you looked at,
|
||||
what you did, what is left. You say so when you don't know, and when something
|
||||
you did didn't work.
|
||||
|
|
@ -291,7 +291,7 @@ let
|
|||
# output and prints it as JSON. A derivation or a path in `meta` would
|
||||
# make that evaluation build or copy something; a function would not
|
||||
# print at all.
|
||||
name = "the built-in archetypes carry a module and a meta of plain data, and reviewer can run commands and android-dev installs its toolchain and reverse-engineer turns rea on, and each sets an svg icon as a default, and each has a non-empty prompt under the 64 KiB cap";
|
||||
name = "the built-in archetypes carry a module and a meta of plain data, and reviewer can run commands and android-dev installs its toolchain and reverse-engineer turns rea on, and each sets an svg icon as a default, and each has a non-empty prompt under the 64 KiB cap, and ruth runs sonnet with manage_root_agent, logs and metrics";
|
||||
ok =
|
||||
let
|
||||
plain =
|
||||
|
|
@ -325,7 +325,19 @@ let
|
|||
(archetypes.reviewer.module { inherit lib; }).services.hyperhive.agent.icon
|
||||
(archetypes.android-dev.module { inherit pkgs lib; }).services.hyperhive.agent.icon
|
||||
(archetypes.reverse-engineer.module { inherit lib; }).services.hyperhive.agent.icon
|
||||
];
|
||||
(archetypes.ruth.module { inherit lib; }).services.hyperhive.agent.icon
|
||||
]
|
||||
&& metas.ruth.inference.model == "sonnet"
|
||||
&& lib.all (p: lib.elem p metas.ruth.permissions) [
|
||||
"messaging"
|
||||
"meta"
|
||||
"inbox"
|
||||
"execution"
|
||||
"manage_root_agent"
|
||||
"logs"
|
||||
"metrics"
|
||||
]
|
||||
&& !(lib.elem "web_tools" metas.ruth.permissions);
|
||||
}
|
||||
{
|
||||
# `docs.enable` reads `docs.source`, whose default builds from the
|
||||
|
|
|
|||
Loading…
Reference in a new issue