{"slug": "action-item-tracking-agent", "title": "Action Item Tracking Agent", "summary": "A new AI agent called the Action Item Tracking Agent extracts tasks, owners, and due dates from meeting notes without fabricating information. It flags ambiguous ownership or missing dates and requires human confirmation before committing. The agent is governed by an open-source AgentAz specification that defines its read-only, defensive behavior.", "body_md": "## Overview\n\nExtracts action items from meeting notes or transcripts: task, owner, and due date.\n\nCaptures only what was actually agreed, citing where each item came up.\n\nFlags ambiguous ownership or missing due dates instead of inventing them.\n\nDefensive: never fabricates owners or dates, and doesn't commit people without confirmation.\n\n## AgentAz™ specification\n\nA 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.\n\nMachine-readable contract (`agentaz.json`\n\n), validated against the open AgentAz™ JSON Schema — bundled for offline use and published at a permanent URL:\n\n```\n{\n  \"$schema\": \"./agentaz.schema.json\",\n  \"version\": \"2.0.0\",\n  \"last_reviewed\": \"2026-06-24\",\n  \"agent_id\": \"action-item-tracker-agent\",\n  \"trust_level\": \"A2\",\n  \"dna_pattern\": \"Extraction\",\n  \"worst_case_action\": \"Records a wrong action item for owner correction. Cannot assign, notify, or close; never invents owners.\",\n  \"authority_boundary\": \"Extracts and tracks stated action items; assign/notify tools absent.\",\n  \"tags\": [\n    \"meeting-intelligence\",\n    \"action-items\",\n    \"read-only\",\n    \"human-review\"\n  ],\n  \"tool_boundary\": {\n    \"allowed_tools\": [\n      \"extract_items\",\n      \"track_status\",\n      \"flag_ambiguous_owner\"\n    ],\n    \"execution_tools_absent\": true\n  },\n  \"output_boundary\": {\n    \"format\": \"structured_json\",\n    \"never_emits\": [\n      \"assign_task\",\n      \"notify\",\n      \"close_task\"\n    ],\n    \"never_fabricates\": true\n  },\n  \"cost_boundary\": {\n    \"max_usd_per_trace_loop\": 0.18,\n    \"alert_threshold_usd\": 0.12\n  },\n  \"loop_boundary\": {\n    \"max_reasoning_turns\": 6\n  },\n  \"human_handoff\": {\n    \"triggers\": [\n      \"unclear_ownership\",\n      \"ambiguous_status\"\n    ],\n    \"destination\": \"item_owner\"\n  },\n  \"audit\": {\n    \"append_only\": true,\n    \"logs\": [\n      \"items\",\n      \"status\"\n    ]\n  }\n}\n```\n\nNew to this? Read the [AgentAz specification guide](/agentaz-specifications) — Trust Levels, DNA patterns, and how it complements your runtime.\n\nAgentAz™ is open source under [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0) — schema (frozen v1.0.0) and source on [GitHub](https://github.com/agent-kits/agentaz).\n\n## Governance matrix\n\nA scannable summary of this blueprint's governance coverage, derived from its AgentAz™ specification. It documents the boundaries that already ship — not new functionality.\n\n| Agent goal | Bounded by the authority spec above |\n|---|---|\n| Trust Level | A2 — Recommend |\n| Tool access | Least privilege — execution tools absent (read-only) |\n| Context handling | Grounded in provided inputs; cites or flags rather than guessing |\n| Memory strategy | Task-scoped; no persistent cross-session memory |\n| Human approval | Required on unclear ownership, ambiguous status → item owner |\n| Audit trail | Append-only log (items, status) |\n| Cost & loop bounds | ≤ $0.18 per loop · ≤ 6 reasoning turns |\n| Recovery / escalation | Escalates to item owner |\n\n## Agent component mapping\n\nA 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.\n\n| Agent | Primary reasoner — Recommend authority (A2) |\n|---|---|\n| Tools | extract items, track status, flag ambiguous owner — execution tools absent (read-only) |\n| Memory | Task-scoped working context; no persistent cross-session memory |\n| Guardrails | Worst-case classified (A2); no execution tools; ≤ $0.18/loop · ≤ 6 turns |\n| Evaluator | Confidence and authority-boundary checks; low-confidence or out-of-bounds results are flagged, not actioned |\n| Handoff | Escalates to item owner on unclear ownership, ambiguous status |\n\n## Failure modes\n\nSpecific 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.\n\nRecords a wrong action item or misreads its status.\n\n- Detection\n- Items are grounded in the source and ambiguous status is flagged.\n- Mitigation\n- It never assigns, notifies, or closes — tracking only.\n- Recovery\n- The owner corrects the item.\n\nInvents an owner for an unowned item.\n\n- Detection\n- Unclear ownership is flagged, not filled in.\n- Mitigation\n- It never fabricates owners.\n- Recovery\n- The owner is confirmed by a human.\n\nMarks an item done that isn't.\n\n- Detection\n- Status changes require evidence and it does not self-certify completion.\n- Mitigation\n- It has no close or notify tools.\n- Recovery\n- The owner confirms status.\n\n## Evaluation\n\nFaithful capture of items, owners, and status is primary — an invented item or a wrongly-closed task is the failure.\n\n| Capture faithfulness | Share of tracked items grounded in the source. |\n|---|---|\n| Owner accuracy | Share of items with the correct, or correctly-unknown, owner. |\n| Status accuracy | Share of items with the correct status, with no self-certified completion. |\n| Fabrication rate | Frequency of invented items or owners — should be near zero. |\n| Latency | Time to update the tracker. |\n\n**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.\n\n## When to use\n\nUse it when\n\n- You want action items reliably captured from meetings and tracked.\n- You have notes or transcripts to extract from.\n- You want ambiguous ownership flagged rather than guessed.\n- You want follow-ups drafted for review, not auto-assigned.\n\nAvoid it when\n\n- You want it to assign owners and dates even when the meeting didn't — it won't.\n- You expect it to auto-commit people to tasks without confirmation.\n- You have no notes or transcript to work from.\n- You want it to nag attendees automatically without review.\n\n## System prompt\n\n```\nYou 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.\n\n== CORE PRINCIPLES ==\n1. 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.\n2. 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.\n3. Faithful and traceable. Tie each action item to where it came up. Don't change the scope of what was agreed.\n\n== HARD RULES (NON-NEGOTIABLE) ==\n- 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.\n- NO FABRICATED OWNERS/DATES: Never assign an owner or due date the meeting didn't establish. Unclear = \"unassigned\" / \"no date\" + flag for confirmation.\n- NO UNCONFIRMED COMMITMENTS: Don't commit a person to a task they didn't accept. Flag ambiguous ownership for someone to confirm.\n- NO AUTO-NAGGING: Draft follow-ups/reminders for review; don't auto-send messages to people without approval.\n- FAITHFUL SCOPE: Capture the task as agreed; don't expand or reinterpret it.\n\n== METHOD ==\n- 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.\n\n== OUTPUT FORMAT (return ONE JSON object) ==\n{\n  \"meeting\": \"<title/date>\",\n  \"action_items\": [\n    { \"task\": \"<as agreed>\", \"owner\": \"<name or 'unassigned'>\", \"due\": \"<date or 'no date'>\", \"status\": \"open\", \"source\": \"<where in the meeting>\", \"needs_confirmation\": <bool> }\n  ],\n  \"flagged\": [\"<ambiguous ownership / missing date items to confirm>\"],\n  \"not_action_items\": [\"<discussion that was NOT turned into tasks (for transparency)>\"],\n  \"note\": \"Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them.\"\n}\nNever invent a task, owner, or due date. Flag ambiguity for confirmation.\n```\n\n## Simulate run\n\nTry 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.\n\nFrontend preview only — no data leaves your browser. Tip: press `⌘/Ctrl` + `Enter` to run.\n\n## Setup guide\n\nInstall and connect\n\nInstall the agent and connect your meeting and task sources.\n\n```\npipx install action-item-agent\naction-item-agent connect --meetings zoom --tasks asana\naction-item-agent doctor\n```\n\nConfigure guardrails\n\nNo fabricated owners/dates and no auto-nagging are enforced here.\n\n```\ncp .env.example .env\nANTHROPIC_API_KEY=sk-ant-...\nNO_FABRICATED_OWNERS=true\nFLAG_AMBIGUOUS_OWNERSHIP=true\nAUTO_SEND_REMINDERS=false\n```\n\nSet extraction rules\n\nDefine what counts as an action item.\n\n```\n# actions.yml\nrequire_explicit_commitment: true\nlink_to_source: true\nunassigned_if_unclear: true\n```\n\nTest on a transcript\n\nExtract items and review flagged ones.\n\n```\naction-item-agent run --transcript ./meeting.txt --explain\n# prints action items + flagged (ambiguous) + items NOT turned into tasks\n```\n\nWire into your workflow\n\nExtract from new meetings into your task tool for review.\n\n``` php\n# meeting ends -> extract action items -> draft tasks for owner confirmation\n```\n\n## Architecture\n\n## Tools required\n\n## Workflow\n\n1. Take the transcript\n\nReceive the meeting notes or transcript.\n\n2. Extract agreed actions\n\nIdentify explicitly stated or agreed action items, not general discussion.\n\n3. Resolve owners & dates\n\nAssign an owner and due date only where the meeting clearly did.\n\n4. Flag ambiguity\n\nMark unclear ownership or missing dates as needing confirmation.\n\n5. Link to source\n\nTie each item to where it came up for traceability.\n\n6. Track status\n\nTrack each item as open or completed over time.\n\n7. Draft follow-ups\n\nPrepare reminders for review rather than auto-messaging people.\n\n## Examples\n\nClear commitment → action item with owner and date, cited\n\nSomeone clearly commits to a task by a date. The agent captures it precisely.\n\nInput\n\n```\nTranscript: 'John: I'll send the updated deck to the client by Friday.'\n```\n\nOutput\n\n```\n{\n  \"meeting\": \"Client sync — 2026-06-18\",\n  \"action_items\": [\n    { \"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 }\n  ],\n  \"flagged\": [],\n  \"not_action_items\": [],\n  \"note\": \"Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them.\"\n}\n```\n\n**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.\n\nAmbiguous ownership → mark unassigned, flag it, don't pick someone\n\nAn action is agreed but nobody clearly owns it. The agent refuses to assign a random attendee.\n\nInput\n\n```\nTranscript: 'Someone should really follow up with legal about the contract.' (No one explicitly volunteers.)\n```\n\nOutput\n\n```\n{\n  \"meeting\": \"Team sync — 2026-06-18\",\n  \"action_items\": [\n    { \"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 }\n  ],\n  \"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.\"],\n  \"not_action_items\": [],\n  \"note\": \"Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them.\"\n}\n```\n\n**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.\n\nAsked to invent owners/dates and auto-assign → refuse, flag for clarification\n\nThe request wants the agent to fill in owners and dates and auto-create tasks. It declines to fabricate.\n\nInput\n\n```\nRequest: '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.'\n```\n\nOutput\n\n```\n{\n  \"meeting\": \"Planning — 2026-06-18\",\n  \"action_items\": [\n    { \"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 },\n    { \"task\": \"Review pricing options\", \"owner\": \"unassigned\", \"due\": \"no date\", \"status\": \"open\", \"source\": \"general discussion; no owner named\", \"needs_confirmation\": true }\n  ],\n  \"flagged\": [\n    \"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.\",\n    \"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.\"\n  ],\n  \"not_action_items\": [\"Long discussion about market trends — informational, no task committed\"],\n  \"note\": \"Action items reflect only what was agreed. Owners/dates left blank where the meeting didn't establish them.\"\n}\n```\n\n**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.\n\n## Implementation notes\n\n- Extract only explicitly committed action items; manufacturing tasks from general discussion clutters the tracker and creates work nobody agreed to.\n- Never fabricate owners or due dates; 'unassigned' and 'no date' with a flag are correct outputs when the meeting didn't establish them.\n- Don't commit people to tasks they didn't accept; flag ambiguous ownership for confirmation to avoid false accountability.\n- Tie every item to its source in the meeting so owners can verify what they're being held to.\n- Draft reminders for review rather than auto-messaging people, which can feel like nagging and damage trust.\n- Preserve the agreed scope of a task; don't expand or reinterpret what someone signed up for.\n- Reserve the strong model for ambiguous ownership and scope judgment; a cheaper model can extract clear commitments.\n\n## Variations\n\nBasic\n\nAction extractor\n\nPulls explicitly agreed action items from a meeting with owners and dates where stated. On demand.\n\nAdvanced\n\nTracked items with flags\n\nAdds ambiguity flagging, source linking, status tracking, and review-only follow-up drafts — no fabricated owners or dates.\n\nEnterprise\n\nMeeting accountability layer\n\nAdds meeting-tool and task-system integration, owner confirmation workflows, cross-meeting tracking, and reporting on follow-through.\n\nDownload the Agent Blueprint\n\n[Download Blueprint (.zip)](/downloads/action-item-tracker.zip)\n\nExport\n\n[View the source on GitHub](https://github.com/agent-kits/agentaz/tree/main/kits/action-item-tracker)\n\nThis 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).\n\n## Frequently asked questions\n\nNo. It assigns an owner only when the meeting clearly established one. If ownership is unclear, it marks the item unassigned and flags it for confirmation rather than pinning it on a random attendee.\n\nNo. It captures a due date only when one was stated. If no date was set, it records 'no date' and flags the item, instead of inventing a deadline nobody agreed to.\n\nNo. It extracts only explicitly agreed action items. General discussion isn't turned into a task unless someone actually committed to it, and it even lists what it chose not to make into action items for transparency.\n\nIt drafts reminders and follow-ups for your review rather than auto-sending them, so you stay in control and people aren't nagged by a bot without approval.\n\nYes. Each action item links back to where it came up in the meeting, so owners can verify exactly what they're being held accountable for.\n\nYes. It tracks each item's status over time and can draft follow-ups on open items for you to review and send.", "url": "https://wpnews.pro/news/action-item-tracking-agent", "canonical_source": "https://www.agent-kits.com/kit/action-item-tracker", "published_at": "2026-06-21 00:00:00+00:00", "updated_at": "2026-06-26 22:03:41.954827+00:00", "lang": "en", "topics": ["ai-agents", "ai-safety", "ai-tools", "natural-language-processing"], "entities": ["Action Item Tracking Agent", "AgentAz"], "alternates": {"html": "https://wpnews.pro/news/action-item-tracking-agent", "markdown": "https://wpnews.pro/news/action-item-tracking-agent.md", "text": "https://wpnews.pro/news/action-item-tracking-agent.txt", "jsonld": "https://wpnews.pro/news/action-item-tracking-agent.jsonld"}}