T25: add tests/test_e2e_agency_framework.py — 16 E2E tests covering the full memory lifecycle (init, show, brief, clear) and protocol list/show commands. T26: replace agency-framework.md protocols placeholder with full documentation — location convention, frontmatter schema, CLI reference, sys-medic memory extensions, and protocols table. T27: add Related Documents footer to agent-sys-medic.md linking to the k3s protocol runbook, ADR-002, ADR-003, and agency-framework.md. Fix: rename CLI command function list() → list_agents() to stop it shadowing Python's built-in list(). The shadow caused memory_brief() to invoke the agent-list command instead of constructing a list from dict keys, producing the agent list as output on every `memory brief` invocation. All 27 WP-0002 tasks complete. Test suite: 51 passed, 1 skipped. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
8.0 KiB
Agency Framework
kaizen-agentic is not just a library of agent instruction sets — it is an agency: a system where agents are deployed into projects with their own persistent memory, learn from experience, and are guided by a coaching meta-agent that distils patterns across the entire fleet.
Overview
When you deploy a kaizen-agentic agent into a project, it can accumulate project-scoped memory — a structured file written at session close and read at session start. A Coach meta-agent reads across all agent memories and produces orientation briefs for newly deployed agents: what has been tried, what worked, what to watch out for.
Agents arrive in a project informed, not blank.
Project Memory
Location Convention
<project-root>/.kaizen/agents/<agent-name>/memory.md
The .kaizen/ directory is analogous to .claude/ — a project-level configuration and state directory owned by the kaizen-agentic ecosystem.
Memory File Structure
---
agent: <name>
project: <project-root or slug>
last_updated: <ISO date>
session_count: <n>
---
## Project Context
<!-- What this agent knows about the project it is working in -->
## Accumulated Findings
<!-- Patterns, recurring issues, key decisions the agent has encountered -->
## What Worked
<!-- Approaches that produced good results in this project -->
## Watch Points
<!-- Recurring risks, traps, or areas requiring extra care -->
## Open Threads
<!-- Things noticed but not yet acted on -->
## Session Log
<!-- One-line entry per session: date · summary · outcome -->
Session Protocols
Session-start (all agents with memory: enabled):
- Check for
.kaizen/agents/<name>/memory.mdin the project root. - If present, read it before beginning work.
- Acknowledge the memory in the opening brief.
Session-close (all agents with memory: enabled):
- Update
## Accumulated Findings,## What Worked,## Watch Pointsas appropriate. - Append one line to
## Session Log:YYYY-MM-DD · <summary> · <outcome>. - Bump
last_updatedandsession_count.
Agent YAML Frontmatter
Each agent definition (agents/agent-<name>.md) includes a YAML frontmatter block:
---
name: <name>
description: <one-line description>
category: <category>
memory: enabled # or: disabled
---
The memory field defaults to enabled. Set memory: disabled for agents that are stateless by design (e.g. wisdom-encouragement).
The Coach Meta-Agent
agents/agent-coach.md is a meta-agent — it performs no domain work (coding, testing, infrastructure). Its sole purpose is synthesis and advice.
What the Coach Does
- Cross-agent synthesis: reads all
.kaizen/agents/*/memory.mdfiles, identifies shared patterns, cross-domain risks, and contradictions - New-agent orientation: when briefing a specific agent, filters all existing memories for what is relevant and produces a targeted brief
- Fleet health overview: summarises which agents are active, stale, or missing; flags high-session-count agents with open threads
Invoking the Coach
Via CLI (assembles raw memory context):
kaizen-agentic memory brief <agent-name>
This prints a structured orientation brief. Pass the output to a Claude session with agents/agent-coach.md loaded for full LLM synthesis.
Directly in a Claude session:
Coach, brief the sys-medic agent on this project.
Coach, what patterns have you observed across all agents?
The Coach maintains its own memory at .kaizen/agents/coach/memory.md covering fleet-level observations over time.
CLI Reference
The memory command group manages project-scoped agent memory:
kaizen-agentic memory show <agent> # Print agent memory for the current project
kaizen-agentic memory init <agent> # Scaffold an empty memory file
kaizen-agentic memory brief <agent> # Assemble orientation context for the coach
kaizen-agentic memory clear <agent> # Wipe memory (with confirmation prompt)
Options
memory brief accepts:
--target / -t— project root (default: current directory)--raw— dump raw memory file contents without the structured header
Example Workflow
# First deployment of sys-medic into a project
kaizen-agentic memory init sys-medic
# After a few sessions, brief an incoming tdd-workflow agent
kaizen-agentic memory brief tdd-workflow
# → paste output into Claude with agent-coach.md loaded
# Review accumulated memory for a specific agent
kaizen-agentic memory show project-management
Protocol Runbooks
Agents can reference protocol runbooks — structured, human-readable procedural checklists for structured assessments or remediation work. Protocols are distinct from agent prompts:
- Agent prompts (
agents/agent-*.md) shape AI behaviour - Protocols (
agents/protocols/<agent>/<slug>.md) are procedural documents for humans and agents to execute
Location Convention
agents/protocols/
<agent-name>/
<slug>.md ← one file per protocol
Protocol Frontmatter
Each protocol file has a YAML frontmatter block:
---
agent: <agent-name>
slug: <slug>
title: <human-readable title>
version: 1.0.0
last_updated: "<ISO date>"
---
Referencing Protocols from Agents
Agents with memory: enabled check for relevant protocols at session start and reference them in their session-start protocol block. For example, sys-medic's session-start protocol instructs:
"If a structured assessment is requested, check for
agents/protocols/sys-medic/k3s-node-health-assessment.mdand use it as your procedure."
CLI Reference
kaizen-agentic protocols list # List all protocols
kaizen-agentic protocols list sys-medic # Filter by agent
kaizen-agentic protocols show sys-medic k3s-node-health-assessment
sys-medic Memory and Protocols Integration
sys-medic extends the base memory template with three additional sections for operational continuity across sessions:
## Node Profiles
<!-- Per-node operational baseline established over sessions -->
<!-- hostname | typical load | known quirks | last assessment date -->
## Recurring Findings
<!-- Issues seen more than once: pattern · first seen · frequency -->
## Cleared Issues
<!-- Issues that were resolved: what was done · when · outcome -->
These sections are maintained automatically by the sys-medic session-close protocol.
The k3s Node Health Assessment (agents/protocols/sys-medic/k3s-node-health-assessment.md) is the first protocol runbook — a step-by-step procedure covering OS baseline, process hygiene, memory, CPU, disk, network, Kubernetes node state, and k3s runtime health.
Available Protocols
| Agent | Protocol | Description |
|---|---|---|
| sys-medic | k3s-node-health-assessment | Structured k3s node health check |
See ADR-003: Protocols Artifact Convention for the full specification.
Agents with Memory Enabled
All agents that do session-bound project work have memory: enabled in their frontmatter and include session-start/session-close protocol blocks:
| Agent | Category | Notes |
|---|---|---|
| project-management | process | Reference implementation of the session protocol pattern |
| tdd-workflow | testing | |
| requirements-engineering | process | |
| scope-analyst | process | |
| sys-medic | infrastructure | Extended memory template (node profiles, recurring findings) |
| coach | meta | Fleet-level memory |
Related Documents
- ADR-001: Workplan Convention — how work items are structured
- ADR-002: Project Memory Convention — memory file location, structure, and lifecycle
- WP-0002: Agency Framework — full implementation workplan