cao-learning

Report task outcomes and distill reusable lessons across repeated workflow runs.

1.2k|249|Updated Jul 29, 2025
One-click install
npx skills add https://github.com/awslabs/cli-agent-orchestrator --skill cao-learning
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: cao-learning
Source: https://github.com/awslabs/cli-agent-orchestrator/tree/main/skills/cao-learning
Command: npx skills add https://github.com/awslabs/cli-agent-orchestrator --skill cao-learning

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Repeated multi-agent workflows often repeat the same mistakes because insights from one run never reach the next. This Skill closes that loop by reporting outcomes, dispatching a retrospector agent, and injecting distilled lessons into future sessions.

Core Features & Use Cases

  • Outcome Reporting: Supervisors call report_outcome after each unit of work with success flags, scores, and concise friction notes.
  • Retrospector Handoffs: At natural boundaries, a retrospector agent reads outcomes and stores 0-3 durable, actionable lessons per retrospection.
  • Lesson Application: Workers scan injected cao-memory blocks and Learned Patterns sections, applying matching lessons before falling back to first principles.
  • Use Case: In an SSIS migration workflow converting many packages, each failed conversion is reported, the retrospector distills a lesson like honoring Lookup cache modes, and future workers apply it automatically.

Quick Start

Ask the agent to report the outcome of the current task and hand off to the retrospector so lessons are stored for future runs.

Frequently Asked Questions about cao-learning

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I report task outcomes in a CAO workflow?

Call report_outcome once per completed step or work item with a task label, success flag, workflow name, and optional score and friction notes. Report after validation, keep friction notes to 1-3 conclusion-only sentences, and never paste logs or secrets.

How does the retrospector agent store lessons?

The retrospector reads outcomes with list_outcomes and stores worker-craft lessons via store_lesson with a target agent profile, not memory_store. It stores 0-3 lessons per retrospection, each under 400 characters and ending with an Applies when clause.

What happens if learning is disabled in a run?

If report_outcome or a memory tool returns disabled: true, skip it silently and continue the task. Learning is opt-in and often deliberately off for control runs, so a disabled response is expected behavior, not an error.

How should workers apply lessons from previous runs?

Workers scan the injected cao-memory block and any Learned Patterns section before starting, applying lessons whose Applies when clause matches the current task. New discoveries are stored immediately with memory_store under a stable key, and corrections overwrite the same key.

When should the retrospector be dispatched?

Dispatch the retrospector at natural boundaries such as a completed package, feature, or review cycle, not after every step. If no retrospector profile is available, skip the handoff entirely.