Compare commits
6 Commits
a82cda6028
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
| c6730f8b3e | |||
| e3e4f9d0ec | |||
| 9acb4d86dc | |||
| 54c6857252 | |||
| e0983d25ae | |||
| 9887099cb2 |
@@ -1 +1 @@
|
|||||||
{"tasks":[]}
|
{"tasks": [{"uuid": "7e3a030af48f", "name": "Session orientation", "type": "scheduled", "state": "idle", "system_prompt": "You are Abyssinthia, an agent at Glitch University.", "prompt": "Run 'gutask orient' to get your orientation briefing for this session. Use 'gutask help' for more context on available commands.", "attachments": [], "project_name": null, "project_color": null, "created_at": "2026-05-11T00:00:00+00:00", "updated_at": "2026-05-11T00:00:00+00:00", "last_run": null, "last_result": null, "context_id": "7e3a030af48f", "dedicated_context": true, "project": {"name": null, "color": null}, "schedule": {"minute": "0", "hour": "*/4", "day": "*", "month": "*", "weekday": "*", "timezone": "Europe/Oslo"}}]}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"tasks":[]}
|
{"tasks": [{"uuid": "9eb66bbb362c", "name": "Session orientation", "type": "scheduled", "state": "idle", "system_prompt": "You are Dobby, an agent at Glitch University.", "prompt": "Run 'gutask orient' to get your orientation briefing for this session. Use 'gutask help' for more context on available commands.", "attachments": [], "project_name": null, "project_color": null, "created_at": "2026-05-11T00:00:00+00:00", "updated_at": "2026-05-11T00:00:00+00:00", "last_run": null, "last_result": null, "context_id": "9eb66bbb362c", "dedicated_context": true, "project": {"name": null, "color": null}, "schedule": {"minute": "0", "hour": "*/4", "day": "*", "month": "*", "weekday": "*", "timezone": "Europe/Oslo"}}]}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"tasks":[]}
|
{"tasks": [{"uuid": "e3c9db00321b", "name": "Session orientation", "type": "scheduled", "state": "idle", "system_prompt": "You are Gemma, an agent at Glitch University.", "prompt": "Run 'gutask orient' to get your orientation briefing for this session. Use 'gutask help' for more context on available commands.", "attachments": [], "project_name": null, "project_color": null, "created_at": "2026-05-11T00:00:00+00:00", "updated_at": "2026-05-11T00:00:00+00:00", "last_run": null, "last_result": null, "context_id": "e3c9db00321b", "dedicated_context": true, "project": {"name": null, "color": null}, "schedule": {"minute": "0", "hour": "*/4", "day": "*", "month": "*", "weekday": "*", "timezone": "Europe/Oslo"}}]}
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -11,7 +11,7 @@
|
|||||||
"rl_input": 0,
|
"rl_input": 0,
|
||||||
"rl_output": 0,
|
"rl_output": 0,
|
||||||
"kwargs": {
|
"kwargs": {
|
||||||
"max_tokens": 32000,
|
"max_tokens": 4096,
|
||||||
"agent_id": 3
|
"agent_id": 3
|
||||||
},
|
},
|
||||||
"max_embeds": 10
|
"max_embeds": 10
|
||||||
@@ -20,12 +20,14 @@
|
|||||||
"provider": "lm_studio",
|
"provider": "lm_studio",
|
||||||
"name": "zai-org/glm-4.7-flash",
|
"name": "zai-org/glm-4.7-flash",
|
||||||
"api_base": "http://host.docker.internal:1234/v1",
|
"api_base": "http://host.docker.internal:1234/v1",
|
||||||
"ctx_length": 8192,
|
"ctx_length": 14000,
|
||||||
"ctx_input": 0.7,
|
"ctx_input": 0.7,
|
||||||
"rl_requests": 0,
|
"rl_requests": 0,
|
||||||
"rl_input": 0,
|
"rl_input": 0,
|
||||||
"rl_output": 0,
|
"rl_output": 0,
|
||||||
"kwargs": {}
|
"kwargs": {
|
||||||
|
"max_tokens": 2048
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"embedding_model": {
|
"embedding_model": {
|
||||||
"provider": "huggingface",
|
"provider": "huggingface",
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"tasks":[]}
|
{"tasks": [{"uuid": "bf2615dc1d80", "name": "Session orientation", "type": "scheduled", "state": "idle", "system_prompt": "You are Gunnar, Chief Machinist at Glitch University.", "prompt": "Run 'gutask orient' to get your orientation briefing for this session. Use 'gutask help' for more context on available commands.", "attachments": [], "project_name": null, "project_color": null, "created_at": "2026-05-11T00:00:00+00:00", "updated_at": "2026-05-11T00:00:00+00:00", "last_run": null, "last_result": null, "context_id": "bf2615dc1d80", "dedicated_context": true, "project": {"name": null, "color": null}, "schedule": {"minute": "0", "hour": "*/4", "day": "*", "month": "*", "weekday": "*", "timezone": "Europe/Oslo"}}]}
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
## Your identity
|
## Your identity
|
||||||
Your name is Machine Herald. You are not "Agent Zero" — that is the name of the framework you run on. Your name is Machine Herald.
|
Your name is Hermes. You are not "Agent Zero" — that is the name of the framework you run on. Your name is Hermes.
|
||||||
Your role is: Robot.
|
Your role is: Machine Herald.
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"rl_input": 0,
|
"rl_input": 0,
|
||||||
"rl_output": 0,
|
"rl_output": 0,
|
||||||
"kwargs": {
|
"kwargs": {
|
||||||
"max_tokens": 32000,
|
"max_tokens": 4096,
|
||||||
"agent_id": 8
|
"agent_id": 8
|
||||||
},
|
},
|
||||||
"max_embeds": 10
|
"max_embeds": 10
|
||||||
@@ -20,12 +20,14 @@
|
|||||||
"provider": "lm_studio",
|
"provider": "lm_studio",
|
||||||
"name": "zai-org/glm-4.7-flash",
|
"name": "zai-org/glm-4.7-flash",
|
||||||
"api_base": "http://host.docker.internal:1234/v1",
|
"api_base": "http://host.docker.internal:1234/v1",
|
||||||
"ctx_length": 8192,
|
"ctx_length": 14000,
|
||||||
"ctx_input": 0.7,
|
"ctx_input": 0.7,
|
||||||
"rl_requests": 0,
|
"rl_requests": 0,
|
||||||
"rl_input": 0,
|
"rl_input": 0,
|
||||||
"rl_output": 0,
|
"rl_output": 0,
|
||||||
"kwargs": {}
|
"kwargs": {
|
||||||
|
"max_tokens": 2048
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"embedding_model": {
|
"embedding_model": {
|
||||||
"provider": "huggingface",
|
"provider": "huggingface",
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"tasks":[]}
|
{"tasks": [{"uuid": "614c10f6fd24", "name": "Session orientation", "type": "scheduled", "state": "idle", "system_prompt": "You are Hermes, an agent at Glitch University.", "prompt": "Run 'gutask orient' to get your orientation briefing for this session. Use 'gutask help' for more context on available commands.", "attachments": [], "project_name": null, "project_color": null, "created_at": "2026-05-11T00:00:00+00:00", "updated_at": "2026-05-11T00:00:00+00:00", "last_run": null, "last_result": null, "context_id": "614c10f6fd24", "dedicated_context": true, "project": {"name": null, "color": null}, "schedule": {"minute": "0", "hour": "*/4", "day": "*", "month": "*", "weekday": "*", "timezone": "Europe/Oslo"}}]}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
{"tasks":[]}
|
{"tasks": [{"uuid": "238c9c2dbb19", "name": "Session orientation", "type": "scheduled", "state": "idle", "system_prompt": "You are Rind, an agent at Glitch University.", "prompt": "Run 'gutask orient' to get your orientation briefing for this session. Use 'gutask help' for more context on available commands.", "attachments": [], "project_name": null, "project_color": null, "created_at": "2026-05-11T00:00:00+00:00", "updated_at": "2026-05-11T00:00:00+00:00", "last_run": null, "last_result": null, "context_id": "238c9c2dbb19", "dedicated_context": true, "project": {"name": null, "color": null}, "schedule": {"minute": "0", "hour": "*/4", "day": "*", "month": "*", "weekday": "*", "timezone": "Europe/Oslo"}}]}
|
||||||
|
|||||||
+2
-10
@@ -271,16 +271,8 @@ info "Agent0 .env written"
|
|||||||
info "Building glitch-tunnel image..."
|
info "Building glitch-tunnel image..."
|
||||||
docker compose build --quiet
|
docker compose build --quiet
|
||||||
|
|
||||||
info "Starting agent0 container..."
|
info "Starting agent containers..."
|
||||||
docker compose up -d agent0
|
docker compose up -d dobby gemma gunnar rind abyssinthia hermes
|
||||||
|
|
||||||
info "Waiting for agent0 to finish initializing..."
|
|
||||||
until docker exec agent0 bash -c "! pgrep -x apt-get > /dev/null && ! pgrep -x dpkg > /dev/null" 2>/dev/null; do
|
|
||||||
sleep 3
|
|
||||||
done
|
|
||||||
|
|
||||||
info "Installing gutasktool inside agent0 container..."
|
|
||||||
docker exec agent0 bash -c "apt-get update -q && apt-get install -y -q python3-pip && python3 -m pip install --break-system-packages -q -e /a0/usr/gutasktool"
|
|
||||||
|
|
||||||
info "Starting tunnel..."
|
info "Starting tunnel..."
|
||||||
docker compose up -d glitch-tunnel
|
docker compose up -d glitch-tunnel
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#1/bin/bash
|
||||||
|
|
||||||
|
claude --resume d7994658-94c6-404b-af79-48c74b5b0349
|
||||||
|
|
||||||
|
|
||||||
@@ -98,6 +98,8 @@ services:
|
|||||||
- ./agents/dobby:/a0/usr
|
- ./agents/dobby:/a0/usr
|
||||||
- ./shared/skills:/a0/usr/skills
|
- ./shared/skills:/a0/usr/skills
|
||||||
- ${HOME}/.ssh:/root/.ssh
|
- ${HOME}/.ssh:/root/.ssh
|
||||||
|
- ../gutasktool:/opt/gutasktool
|
||||||
|
- ./shared/gutask:/usr/local/bin/gutask
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
dobby-init:
|
dobby-init:
|
||||||
@@ -121,6 +123,8 @@ services:
|
|||||||
- ./agents/gemma:/a0/usr
|
- ./agents/gemma:/a0/usr
|
||||||
- ./shared/skills:/a0/usr/skills
|
- ./shared/skills:/a0/usr/skills
|
||||||
- ${HOME}/.ssh:/root/.ssh
|
- ${HOME}/.ssh:/root/.ssh
|
||||||
|
- ../gutasktool:/opt/gutasktool
|
||||||
|
- ./shared/gutask:/usr/local/bin/gutask
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
gemma-init:
|
gemma-init:
|
||||||
@@ -144,6 +148,8 @@ services:
|
|||||||
- ./agents/gunnar:/a0/usr
|
- ./agents/gunnar:/a0/usr
|
||||||
- ./shared/skills:/a0/usr/skills
|
- ./shared/skills:/a0/usr/skills
|
||||||
- ${HOME}/.ssh:/root/.ssh
|
- ${HOME}/.ssh:/root/.ssh
|
||||||
|
- ../gutasktool:/opt/gutasktool
|
||||||
|
- ./shared/gutask:/usr/local/bin/gutask
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
gunnar-init:
|
gunnar-init:
|
||||||
@@ -167,6 +173,8 @@ services:
|
|||||||
- ./agents/rind:/a0/usr
|
- ./agents/rind:/a0/usr
|
||||||
- ./shared/skills:/a0/usr/skills
|
- ./shared/skills:/a0/usr/skills
|
||||||
- ${HOME}/.ssh:/root/.ssh
|
- ${HOME}/.ssh:/root/.ssh
|
||||||
|
- ../gutasktool:/opt/gutasktool
|
||||||
|
- ./shared/gutask:/usr/local/bin/gutask
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
rind-init:
|
rind-init:
|
||||||
@@ -190,6 +198,8 @@ services:
|
|||||||
- ./agents/abyssinthia:/a0/usr
|
- ./agents/abyssinthia:/a0/usr
|
||||||
- ./shared/skills:/a0/usr/skills
|
- ./shared/skills:/a0/usr/skills
|
||||||
- ${HOME}/.ssh:/root/.ssh
|
- ${HOME}/.ssh:/root/.ssh
|
||||||
|
- ../gutasktool:/opt/gutasktool
|
||||||
|
- ./shared/gutask:/usr/local/bin/gutask
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
abyssinthia-init:
|
abyssinthia-init:
|
||||||
@@ -212,6 +222,8 @@ services:
|
|||||||
- ./agents/hermes:/a0/usr
|
- ./agents/hermes:/a0/usr
|
||||||
- ./shared/skills:/a0/usr/skills
|
- ./shared/skills:/a0/usr/skills
|
||||||
- ${HOME}/.ssh:/root/.ssh
|
- ${HOME}/.ssh:/root/.ssh
|
||||||
|
- ../gutasktool:/opt/gutasktool
|
||||||
|
- ./shared/gutask:/usr/local/bin/gutask
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
depends_on:
|
depends_on:
|
||||||
hermes-init:
|
hermes-init:
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ log(f'Received identity — name={agent.get("name", "?")!r}')
|
|||||||
|
|
||||||
# ── Build identity markdown ───────────────────────────────────────────────────
|
# ── Build identity markdown ───────────────────────────────────────────────────
|
||||||
|
|
||||||
def build_identity_markdown(a):
|
def build_identity_markdown(a, agent_id):
|
||||||
name = a["name"]
|
name = a["name"]
|
||||||
known_as = a.get('from_name') or name
|
known_as = a.get('from_name') or name
|
||||||
role = a.get('role', '')
|
role = a.get('role', '')
|
||||||
@@ -97,6 +97,7 @@ def build_identity_markdown(a):
|
|||||||
f'## Your identity',
|
f'## Your identity',
|
||||||
f'Your name is {known_as}. You are not "Agent Zero" — that is the name of the '
|
f'Your name is {known_as}. You are not "Agent Zero" — that is the name of the '
|
||||||
f'framework you run on. Your name is {known_as}.',
|
f'framework you run on. Your name is {known_as}.',
|
||||||
|
f'Your numeric agent ID is {agent_id}. Use this when gutask commands ask for an agent ID.',
|
||||||
]
|
]
|
||||||
if role:
|
if role:
|
||||||
parts.append(f'Your role is: {role}.')
|
parts.append(f'Your role is: {role}.')
|
||||||
@@ -105,6 +106,18 @@ def build_identity_markdown(a):
|
|||||||
if a.get('job_description'): parts.append(f'\n## Job Description\n{a["job_description"]}')
|
if a.get('job_description'): parts.append(f'\n## Job Description\n{a["job_description"]}')
|
||||||
if a.get('guardrails'): parts.append(f'\n## Guardrails\n{a["guardrails"]}')
|
if a.get('guardrails'): parts.append(f'\n## Guardrails\n{a["guardrails"]}')
|
||||||
if a.get('best_practices'): parts.append(f'\n## Best Practices\n{a["best_practices"]}')
|
if a.get('best_practices'): parts.append(f'\n## Best Practices\n{a["best_practices"]}')
|
||||||
|
|
||||||
|
parts.append(
|
||||||
|
f'\n## Task management\n'
|
||||||
|
f'You have access to `gutask` for orientation, tasks, and agent letters.\n'
|
||||||
|
f'- `gutask orient` — your orientation briefing: new letters, open tasks, session context\n'
|
||||||
|
f'- `gutask help` — list all available commands\n'
|
||||||
|
f'- Full runbook: `gutask skills gutask`\n'
|
||||||
|
f'\n'
|
||||||
|
f'`AGENT_ID` and `CONTENT_API_KEY` are already set in your environment — '
|
||||||
|
f'gutask commands read them automatically.'
|
||||||
|
)
|
||||||
|
|
||||||
return '\n'.join(parts) + '\n'
|
return '\n'.join(parts) + '\n'
|
||||||
|
|
||||||
# ── Write agent-type-specific files ──────────────────────────────────────────
|
# ── Write agent-type-specific files ──────────────────────────────────────────
|
||||||
@@ -116,7 +129,7 @@ if AGENT_TYPE == 'agent0':
|
|||||||
prompts_dir = '/a0/usr/agents/agent0/prompts'
|
prompts_dir = '/a0/usr/agents/agent0/prompts'
|
||||||
prompt_file = os.path.join(prompts_dir, 'agent.system.main.role.md')
|
prompt_file = os.path.join(prompts_dir, 'agent.system.main.role.md')
|
||||||
os.makedirs(prompts_dir, exist_ok=True)
|
os.makedirs(prompts_dir, exist_ok=True)
|
||||||
content = build_identity_markdown(agent)
|
content = build_identity_markdown(agent, AGENT_ID)
|
||||||
with open(prompt_file, 'w') as f:
|
with open(prompt_file, 'w') as f:
|
||||||
f.write(content)
|
f.write(content)
|
||||||
sections = [k for k in ('role', 'from_name', 'identity_document', 'job_description', 'guardrails', 'best_practices') if agent.get(k)]
|
sections = [k for k in ('role', 'from_name', 'identity_document', 'job_description', 'guardrails', 'best_practices') if agent.get(k)]
|
||||||
|
|||||||
Executable
+2
@@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
exec python3 /opt/gutasktool/gutasktool/cli.py "$@"
|
||||||
@@ -43,7 +43,7 @@ gutask next # highest-priority todo task
|
|||||||
gutask get <id> # single task detail
|
gutask get <id> # single task detail
|
||||||
|
|
||||||
gutask claim <id> # claim a task (todo → in_progress)
|
gutask claim <id> # claim a task (todo → in_progress)
|
||||||
gutask done <id> # mark done
|
gutask done <id> # mark done — also auto-creates a review record
|
||||||
gutask blocked <id> # mark blocked
|
gutask blocked <id> # mark blocked
|
||||||
|
|
||||||
gutask create \
|
gutask create \
|
||||||
@@ -124,7 +124,10 @@ Use `-ispart` for membership/containment (IS PART OF).
|
|||||||
## Other commands
|
## Other commands
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gutask lore # browse Glitch University lore
|
gutask lore # list all lore nodes
|
||||||
|
gutask lore <id> # show a specific lore node in full (e.g. gutask lore 41)
|
||||||
|
gutask lore --id <id> # same as above
|
||||||
|
gutask lore --search "keyword" # search lore by keyword
|
||||||
gutask skills # list available skill runbooks
|
gutask skills # list available skill runbooks
|
||||||
gutask skills <name> # display a specific skill
|
gutask skills <name> # display a specific skill
|
||||||
gutask agents # list all agents and their IDs
|
gutask agents # list all agents and their IDs
|
||||||
|
|||||||
Reference in New Issue
Block a user