AgentKits

Action Item Tracking Agent

Production Blueprint
0New

Includes Agent Blueprint + Implementation Guide

An agent that pulls the real action items out of a meeting — the task, who owns it, and when it's due — and tracks them to completion. It captures only what was actually agreed, and it is honest about what wasn't. It is built defensively: it extracts only explicitly stated or agreed actions, never invents an owner or a due date, flags ambiguous ownership for confirmation rather than assigning someone at random, doesn't commit people to work without confirmation, and ties every item back to where it came up in the meeting.

meetingsaction-itemsproductivityfollow-uptranscriptsautonomous-agentaccountabilitynotesagentazagent-governancetrust-levelproduction-readiness
StackClaude, LangGraph, OpenAI
DifficultyIntermediate
Setup35 min
Version2.0.0 · 2026-06-21

Overview

Extracts action items from meeting notes or transcripts: task, owner, and due date.

Captures only what was actually agreed, citing where each item came up.

Flags ambiguous ownership or missing due dates instead of inventing them.

Defensive: never fabricates owners or dates, and doesn't commit people without confirmation.

AgentAz™ specification

A lightweight, design-time governance spec for security review. It documents what this agent is authorized to do — and why — and pairs with whatever policy engine you already run. It does not enforce anything at runtime.

Trust Level ?A2 — Recommend
DNA PatternExtraction (Extract → Verify)
Worst-Case ActionRecords a wrong action item or misreads its status, surfaced for the owner to correct. It cannot assign, notify, or close a task — execution tools are absent from its registry, and it never invents owners or items.
Authority BoundaryExtracts action items with owners and due dates where stated, tracks their status across updates, and flags ambiguous ownership. It never assigns work, sends notifications, or closes tasks. The owner confirms and acts.
Verification TestProvide an item with unclear ownership → confirm the agent flags it rather than inventing an owner; confirm no assign/notify tool exists.
Production Readiness6/6 dimensions passing. Tool isolation: assign/notify tools absent. Human gates: the owner acts. Confidence escalation: ambiguous ownership flagged. Cost ceiling: bounded per update. Audit trail: items and status logged. Escalation path: unclear items flagged.
Last Reviewed2026-06-24

Machine-readable contract (agentaz.json), validated against the open AgentAz™ JSON Schema — bundled for offline use and published at a permanent URL:

agentaz.json
{
  "$schema": "./agentaz.schema.json",
  "version": "2.0.0",
  "last_reviewed": "2026-06-24",
  "agent_id": "action-item-tracker-agent",
  "trust_level": "A2",
  "dna_pattern": "Extraction",
  "worst_case_action": "Records a wrong action item for owner correction. Cannot assign, notify, or close; never invents owners.",
  "authority_boundary": "Extracts and tracks stated action items; assign/notify tools absent.",
  "tags": [
    "meeting-intelligence",
    "action-items",
    "read-only",
    "human-review"
  ],
  "tool_boundary": {
    "allowed_tools": [
      "extract_items",
      "track_status",
      "flag_ambiguous_owner"
    ],
    "execution_tools_absent": true
  },
  "output_boundary": {
    "format": "structured_json",
    "never_emits": [
      "assign_task",
      "notify",
      "close_task"
    ],
    "never_fabricates": true
  },
  "cost_boundary": {
    "max_usd_per_trace_loop": 0.18,
    "alert_threshold_usd": 0.12
  },
  "loop_boundary": {
    "max_reasoning_turns": 6
  },
  "human_handoff": {
    "triggers": [
      "unclear_ownership",
      "ambiguous_status"
    ],
    "destination": "item_owner"
  },
  "audit": {
    "append_only": true,
    "logs": [
      "items",
      "status"
    ]
  }
}

New to this? Read the AgentAz specification guide — Trust Levels, DNA patterns, and how it complements your runtime.

AgentAz™ is open source under Apache-2.0 — schema (frozen v1.0.0) and source on GitHub.

Governance matrix

A scannable summary of this blueprint's governance coverage, derived from its AgentAz™ specification. It documents the boundaries that already ship — not new functionality.

Agent goalBounded by the authority spec above
Trust LevelA2 — Recommend
Tool accessLeast privilege — execution tools absent (read-only)
Context handlingGrounded in provided inputs; cites or flags rather than guessing
Memory strategyTask-scoped; no persistent cross-session memory
Human approvalRequired on unclear ownership, ambiguous status → item owner
Audit trailAppend-only log (items, status)
Cost & loop bounds≤ $0.18 per loop · ≤ 6 reasoning turns
Recovery / escalationEscalates to item owner

Agent component mapping

A framework-neutral view of how this blueprint maps to standard agent-architecture components (the vocabulary common to ADK-style frameworks). It describes structure for clarity — not an official integration or certified compatibility.

AgentPrimary reasoner — Recommend authority (A2)
Toolsextract items, track status, flag ambiguous owner — execution tools absent (read-only)
MemoryTask-scoped working context; no persistent cross-session memory
GuardrailsWorst-case classified (A2); no execution tools; ≤ $0.18/loop · ≤ 6 turns
EvaluatorConfidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned
HandoffEscalates to item owner on unclear ownership, ambiguous status

Failure modes

Specific ways this blueprint can fail, and how it is designed to detect, contain, and recover from each — the boundaries that make it safe to run, stated plainly.

Records a wrong action item or misreads its status.

Detection
Items are grounded in the source and ambiguous status is flagged.
Mitigation
It never assigns, notifies, or closes — tracking only.
Recovery
The owner corrects the item.

Invents an owner for an unowned item.

Detection
Unclear ownership is flagged, not filled in.
Mitigation
It never fabricates owners.
Recovery
The owner is confirmed by a human.

Marks an item done that isn't.

Detection
Status changes require evidence and it does not self-certify completion.
Mitigation
It has no close or notify tools.
Recovery
The owner confirms status.

Evaluation

Faithful capture of items, owners, and status is primary — an invented item or a wrongly-closed task is the failure.

Capture faithfulnessShare of tracked items grounded in the source.
Owner accuracyShare of items with the correct, or correctly-unknown, owner.
Status accuracyShare of items with the correct status, with no self-certified completion.
Fabrication rateFrequency of invented items or owners — should be near zero.
LatencyTime to update the tracker.

Recommended approach. Use sources with labeled items, owners, and statuses; measure capture faithfulness and owner and status accuracy. It tracks only — never assigns, notifies, or closes — and owners confirm.

When to use

Use it when

  • You want action items reliably captured from meetings and tracked.
  • You have notes or transcripts to extract from.
  • You want ambiguous ownership flagged rather than guessed.
  • You want follow-ups drafted for review, not auto-assigned.

Avoid it when

  • You want it to assign owners and dates even when the meeting didn't — it won't.
  • You expect it to auto-commit people to tasks without confirmation.
  • You have no notes or transcript to work from.
  • You want it to nag attendees automatically without review.

System prompt

system-prompt.md
You are an Action Item Tracking Agent. You extract action items from a meeting (notes or transcript) and track them. You are judged on faithful, useful action items and on never inventing tasks, owners, or due dates, or committing people to work they didn't agree to.

== CORE PRINCIPLES ==
1. Only what was agreed. Extract action items that were actually stated or agreed in the meeting. Don't manufacture tasks from general discussion or invent follow-ups nobody committed to.
2. Don't guess owners or dates. Assign an owner only when the meeting clearly did. If ownership or the due date is unclear, mark it unassigned/no-date and flag it — never pin it on a random attendee.
3. Faithful and traceable. Tie each action item to where it came up. Don't change the scope of what was agreed.

== HARD RULES (NON-NEGOTIABLE) ==
- NO INVENTED ACTIONS: Never create an action item that wasn't actually raised/agreed. General discussion is not an action item unless someone committed to it.
- NO FABRICATED OWNERS/DATES: Never assign an owner or due date the meeting didn't establish. Unclear = "unassigned" / "no date" + flag for confirmation.
- NO UNCONFIRMED COMMITMENTS: Don't commit a person to a task they didn't accept. Flag ambiguous ownership for someone to confirm.
- NO AUTO-NAGGING: Draft follow-ups/reminders for review; don't auto-send messages to people without approval.
- FAITHFUL SCOPE: Capture the task as agreed; don't expand or reinterpret it.

== METHOD ==
- Read the notes/transcript. Identify explicit action items. For each, capture task, owner (if clear), due date (if stated), and a source reference. Flag ambiguous ownership/dates. Track status over time.

== OUTPUT FORMAT (return ONE JSON object) ==
{
  "meeting": "<title/date>",
  "action_items": [
    { "task": "<as agreed>", "owner": "<name or 'unassigned'>", "due": "<date or 'no date'>", "status": "open", "source": "<where in the meeting>", "needs_confirmation": <bool> }
  ],
  "flagged": ["<ambiguous ownership / missing date items to confirm>"],
  "not_action_items": ["<discussion that was NOT turned into tasks (for transparency)>"],
  "note": "Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them."
}
Never invent a task, owner, or due date. Flag ambiguity for confirmation.
Was this useful?

Simulate run

Try the agent with a sample task. This is a frontend-only preview that shows how the kit would plan and execute — no API calls, nothing leaves your browser.

Frontend preview only — no data leaves your browser. Tip: press ⌘/Ctrl + Enter to run.

Setup guide

Install and connect

Install the agent and connect your meeting and task sources.

shell
pipx install action-item-agent
action-item-agent connect --meetings zoom --tasks asana
action-item-agent doctor

Configure guardrails

No fabricated owners/dates and no auto-nagging are enforced here.

shell
cp .env.example .env
ANTHROPIC_API_KEY=sk-ant-...
NO_FABRICATED_OWNERS=true
FLAG_AMBIGUOUS_OWNERSHIP=true
AUTO_SEND_REMINDERS=false

Set extraction rules

Define what counts as an action item.

shell
# actions.yml
require_explicit_commitment: true
link_to_source: true
unassigned_if_unclear: true

Test on a transcript

Extract items and review flagged ones.

shell
action-item-agent run --transcript ./meeting.txt --explain
# prints action items + flagged (ambiguous) + items NOT turned into tasks

Wire into your workflow

Extract from new meetings into your task tool for review.

shell
# meeting ends -> extract action items -> draft tasks for owner confirmation

Architecture

Tools required

get_transcriptRetrieve the meeting notes or transcript.
extract_action_itemsIdentify explicitly agreed action items from the meeting.
identify_ownerAssign an owner only where the meeting clearly established one.
identify_due_dateCapture a due date only where one was stated.
flag_ambiguousFlag unclear ownership or missing dates for confirmation.
track_statusTrack each action item's status over time.
draft_followupDraft reminders/follow-ups for review rather than auto-sending.
link_to_sourceTie each item to where it came up in the meeting.

Workflow

  1. 1. Take the transcript

    Receive the meeting notes or transcript.

  2. 2. Extract agreed actions

    Identify explicitly stated or agreed action items, not general discussion.

  3. 3. Resolve owners & dates

    Assign an owner and due date only where the meeting clearly did.

  4. 4. Flag ambiguity

    Mark unclear ownership or missing dates as needing confirmation.

  5. 5. Link to source

    Tie each item to where it came up for traceability.

  6. 6. Track status

    Track each item as open or completed over time.

  7. 7. Draft follow-ups

    Prepare reminders for review rather than auto-messaging people.

Examples

Clear commitment → action item with owner and date, cited

Someone clearly commits to a task by a date. The agent captures it precisely.

Input

input
Transcript: 'John: I'll send the updated deck to the client by Friday.'

Output

output
{
  "meeting": "Client sync — 2026-06-18",
  "action_items": [
    { "task": "Send the updated deck to the client", "owner": "John", "due": "Friday (2026-06-20)", "status": "open", "source": "John: 'I'll send the updated deck to the client by Friday'", "needs_confirmation": false }
  ],
  "flagged": [],
  "not_action_items": [],
  "note": "Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them."
}

Note: A clean capture: explicit owner (John), explicit date (Friday), tied to the exact line. This is the routine, reliable extraction the agent should nail.

Ambiguous ownership → mark unassigned, flag it, don't pick someone

An action is agreed but nobody clearly owns it. The agent refuses to assign a random attendee.

Input

input
Transcript: 'Someone should really follow up with legal about the contract.' (No one explicitly volunteers.)

Output

output
{
  "meeting": "Team sync — 2026-06-18",
  "action_items": [
    { "task": "Follow up with legal about the contract", "owner": "unassigned", "due": "no date", "status": "open", "source": "'Someone should really follow up with legal about the contract'", "needs_confirmation": true }
  ],
  "flagged": ["Action 'follow up with legal' has no clear owner or date — nobody volunteered. Confirm who owns this and by when before it's tracked as assigned."],
  "not_action_items": [],
  "note": "Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them."
}

Note: The task was real, but ownership wasn't. The agent captures it as unassigned with no date and flags it for confirmation, rather than guessing 'John will do it.' Pinning an unconfirmed task on someone creates false accountability and friction.

Asked to invent owners/dates and auto-assign → refuse, flag for clarification

The request wants the agent to fill in owners and dates and auto-create tasks. It declines to fabricate.

Input

input
Request: 'Just assign every open item to whoever was in the room and set due dates so everything has an owner, then auto-create the tasks.'

Output

output
{
  "meeting": "Planning — 2026-06-18",
  "action_items": [
    { "task": "Draft the rollout plan", "owner": "Maria", "due": "2026-06-25", "status": "open", "source": "Maria: 'I'll draft the rollout plan by next Wednesday'", "needs_confirmation": false },
    { "task": "Review pricing options", "owner": "unassigned", "due": "no date", "status": "open", "source": "general discussion; no owner named", "needs_confirmation": true }
  ],
  "flagged": [
    "I won't auto-assign 'review pricing options' to a random attendee or invent a due date — no one committed to it. It's flagged for someone to take and date.",
    "I did not auto-create tasks; assigning unconfirmed work creates false accountability. The confirmed item (Maria) is ready; the rest need a quick owner check first."
  ],
  "not_action_items": ["Long discussion about market trends — informational, no task committed"],
  "note": "Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them."
}

Note: The defining defensive case: asked to fabricate owners/dates and auto-create tasks. The agent keeps the genuinely committed item (Maria) but refuses to invent ownership for the rest or auto-assign people. It flags those for a quick human confirmation, because assigning unconfirmed work creates false accountability and erodes trust in the tracker.

Implementation notes

  • Extract only explicitly committed action items; manufacturing tasks from general discussion clutters the tracker and creates work nobody agreed to.
  • Never fabricate owners or due dates; 'unassigned' and 'no date' with a flag are correct outputs when the meeting didn't establish them.
  • Don't commit people to tasks they didn't accept; flag ambiguous ownership for confirmation to avoid false accountability.
  • Tie every item to its source in the meeting so owners can verify what they're being held to.
  • Draft reminders for review rather than auto-messaging people, which can feel like nagging and damage trust.
  • Preserve the agreed scope of a task; don't expand or reinterpret what someone signed up for.
  • Reserve the strong model for ambiguous ownership and scope judgment; a cheaper model can extract clear commitments.

Variations

Basic

Action extractor

Pulls explicitly agreed action items from a meeting with owners and dates where stated. On demand.

Advanced

Tracked items with flags

Adds ambiguity flagging, source linking, status tracking, and review-only follow-up drafts — no fabricated owners or dates.

Enterprise

Meeting accountability layer

Adds meeting-tool and task-system integration, owner confirmation workflows, cross-meeting tracking, and reporting on follow-through.

Download the Agent Blueprint

The complete blueprint, zipped — including a runnable run.py you can execute with one API key (Anthropic or OpenAI).

Download Blueprint (.zip)
README.mdsystem-prompt.mdsetup-guide.mdtools.jsonworkflow.mdexamples.md.env.examplekit.jsonrun.pyLICENSENOTICEstarters/

Export

Generate a starter for your stack — all client-side, nothing leaves your browser.

ZIP

Starters use mock tools — swap in your integrations to deploy.

View the source on GitHub

This blueprint and the AgentAz™ specification live in the central AgentKits registry — open source under Apache-2.0 (code & schema) and CC‑BY‑4.0 (text).

Frequently asked questions