Inspiration
Every team knows this pattern: a meeting ends, everyone said "I'll get it done by Friday," and two weeks later half of those promises have quietly died in the chat history. Project managers spend hours every week manually chasing people — "hey, did you send that proposal yet?" — work that is repetitive, socially awkward, and adds zero creative value.
Existing meeting tools (Otter, Fireflies, etc.) stop at summarization: they tell you what was said. Nobody tracks whether what was promised actually happened. That gap is what inspired FollowThrough.
What it does
FollowThrough is an autonomous agent that keeps working after the meeting ends:
Extracts commitments — Drop in a Google Meet transcript (.vtt), and a Strands agent extracts every action item with owner, deadline, and — critically — a verbatim quote + timestamp as evidence. Every task traces back to the exact sentence where it was promised. Vague deadlines ("sometime next week") are flagged
needs_clarificationinstead of being hallucinated into fake dates.Verifies completion autonomously — An EventBridge-scheduled tracker agent wakes up daily and checks external ground truth: is the linked GitHub issue closed? Is the Google Task completed? Done work marks itself done — no status meetings needed.
Nudges with escalating pressure — Approaching deadline → a gentle Slack DM. Overdue → a firmer reminder. Ignored twice, or colliding deadlines for the same owner → it stops bothering the employee and escalates to the manager with interactive buttons (Reschedule / Reassign / Dismiss). Humans only appear when a real decision is needed.
Closes the loop across meetings — When the next meeting's transcript arrives, it opens the new summary with an accountability report: "Last meeting: 5 promises made, 3 kept, 2 outstanding."
A Streamlit dashboard gives the whole picture: task board with status colors, per-task evidence cards with the original quote, a live Agent Activity feed showing every tool call and decision, and a Demo Mode that fast-forwards time so the autonomous daily cycle can be demonstrated live in seconds.
How we built it
- Strands Agents SDK orchestrates two agents (extractor + tracker) with
@toolintegrations: DynamoDB (boto3), Google Tasks API, GitHub Issues API, and Slack (Block Kit interactive buttons with a signed callback server). - Amazon Bedrock (Nova) powers the LLM reasoning, behind a swappable
llm_clientabstraction so prompts can be developed locally on Ollama and switched to Bedrock with one env var. - DynamoDB stores action items, nudge history, and a full agent activity log — the audit trail that makes the agent's autonomy inspectable.
- EventBridge Scheduler triggers the tracker daily; the same entry point doubles as the Demo Mode time-machine.
- Deployment path uses Bedrock AgentCore.
Challenges we ran into
- Region restrictions: our AWS account's region is blocked from Anthropic models, so we pivoted to Amazon Nova — which turned out to be a feature, not a bug (first-party model, fully credit-covered).
- Bedrock corporate verification: new accounts require manual allowlisting. We designed the entire system to be developed and tested against a local JSON backend + Ollama while waiting for approval, so zero engineering days were blocked.
- Vague human language: "Let's do it next week-ish" has no date. Instead of guessing, the extractor marks uncertainty explicitly — turning a classic AI failure mode into a product feature.
- Demoing autonomy: "it runs in the background every day" is invisible on video. Demo Mode (fast-forward a day per click) compresses days of autonomous behavior into a 30-second live sequence.
Accomplishments that we're proud of
- A genuinely closed loop: promise → verification → nudge → escalation → human decision via Slack button → executed and reflected on the dashboard → next meeting's accountability report.
- Every extracted task carries verifiable evidence (quote + timestamp) — the antidote to LLM hallucination in task extraction.
- The Agent Activity panel makes Strands' multi-tool orchestration visible, not just claimed.
- 22 passing unit tests with fully mocked external services; the whole system runs end-to-end locally with zero cloud dependencies.
What we learned
Autonomy is a trust problem before it's a technical problem. The features that made people trust the agent — evidence quotes, graceful uncertainty flags, escalating politely instead of spamming, and surfacing only real decisions — mattered more than raw model capability. We also learned to design demo-ability into the architecture (Demo Mode) rather than treating the demo as an afterthought.
What's next for FollowThrough
- Deeper Strands multi-agent orchestration (a dedicated conflict-resolution agent)
- More verification sources: Jira, Linear, calendar-aware workload balancing
- Meeting bot that joins calls directly instead of importing transcripts
- Team-level promise-keeping analytics as a retention signal for managers
Built With
- ai-agent
- amazon-bedrock
- amazon-dynamodb
- amazon-web-services
- automation
- eventbridge
- github
- google-tasks
- lambda
- llm
- python
- slack
- strands-agents
- streamlit
Log in or sign up for Devpost to join the conversation.