Skip to content

cchew/agent-tower

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Agent Tower Demo

Four-stage IT incident response pipeline: Triage → Investigation → Remediation → Comms. Hermes Agent + Notion Kanban (HITL interface) + Confluence (KB/RAG).

The demo illustrates a three-layer memory architecture: Confluence (knowledge memory), Hermes FTS5 sessions (operational memory), and Notion Kanban (workflow memory / HITL interface). See presentation/slides-minimal.md for the full design rationale.

Notion Kanban board — incident pipeline in progress

Incidents move through columns as each stage completes. The card comment thread is the observable surface — agent output, operator notes, and HITL interventions all land here.

Steer HITL — operator redirects Investigation mid-run via a card comment

Setup

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Hermes Agent is the CLI used to run each pipeline stage. It is installed from source via requirements.txt (NousResearch/hermes-agent). After install, the hermes command is available in the activated venv.

Environment variables

Create a .env file in the repo root with the following (all required):

ANTHROPIC_API_KEY=...
CONFLUENCE_EMAIL=...
CONFLUENCE_API_TOKEN=...
CONFLUENCE_URL=https://<site>.atlassian.net/wiki
AGENT_TOWER_CONFLUENCE_SPACE=ATKB
NOTION_TOKEN=secret_ntn_...
NOTION_KANBAN_DATABASE_ID=<32-char database ID from Notion URL>

Prerequisites: you need a Confluence Cloud instance with the KB space seeded (python corpus/seed_confluence.py) and a Notion database set up (python scripts/setup_kanban.py). Use --fixtures mode (see Tests) to run the pipeline without Confluence or Hermes API calls.

Cost: each full pipeline run (Triage → Comms) makes 4-8 Anthropic API calls. Expect roughly $0.05-0.15 AUD per run with claude-sonnet-4-6 and prompt caching. Use --fixtures mode for cost-free rehearsal.

Working directory: all hermes and python src/pipeline.py commands must be run from the repo root. Hermes resolves state.db relative to CWD — running from a different directory silently writes sessions to the wrong location, breaking Run 2 recall.

Running Hermes

export HERMES_HOME=$PWD/hermes
hermes chat          # interactive session
hermes chat -q "..."  # one-shot

Layout

  • hermes/ — Hermes Agent config, SOUL.md, session DB, per-stage prompts
  • src/pipeline.py — orchestrator: Notion API + Hermes subprocess sequencing
  • scripts/ — demo lifecycle scripts: demo_setup.py, demo_cleanup.py, setup_kanban.py
  • tools/ — Hermes tool implementations (Confluence search + fetch)
  • corpus/ — KB articles + Confluence seed script
  • scenarios/ — incident descriptions + synthetic logs for all three demo runs
  • tests/ — pytest suite + auto-operator scripts (see Tests below)

Tests

source .venv/bin/activate
python -m pytest tests/test_pipeline_parsers.py tests/test_handoff_parsing.py tests/test_gate3b.py -v

For an end-to-end pipeline run with no LLM cost (replays captured Hermes outputs from tests/fixtures/run-1/, exercises real Notion calls + Steer/Gate timing):

# Terminal 1
python tests/operator_run1.py
# Terminal 2
python src/pipeline.py --incident scenarios/run-1-scenario-modelling.md --fixtures tests/fixtures/run-1

.run/ is created by pipeline.py during a real run and gitignored. tests/fixtures/run-1/ contains pre-captured outputs for cost-free replay.

See DEMO-RUNBOOK.md (Pre-show → Validation) for the full pre-flight checklist.

About

Allows human-in-the-loop monitoring and adjustment of agents

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors