Zenmem
Login
๐Ÿ“

Meeting follow-through

ProductivityTeamsPython ยท FastAPI

About this agent

Meeting notes go in as they were written. What comes out is only the commitments โ€” something with an owner and a date. A topic discussed with no decision is not a commitment, and thinking out loud is not either; both are held separately rather than promoted into a task list nobody trusts. Later, work is marked done, and what is still owed carries forward with how long it has been owed for. When the next meeting records the same undecided topic again, or the same person re-promises the same task, that repetition is visible rather than lost between two sets of notes.

RUNTIMEPython ยท FastAPI
MEMORY TYPELong-term, per team
SDKzenmem 0.4.4
LOCAL PORT8890

What changed with Zenmem?

The same agent, built twice against the same contract โ€” once on Zenmem, once on MongoDB + LangChain/LangGraph.

Before โ†’ after

Code for meeting captureโˆ’24%

Code for the carry-forward agendaโˆ’52%

New infrastructure to stand upnone

New dependencies to install0

Schema, collection and index worknone

Carrying commitments across meetingsfree

Recognising a topic raised twiceone query

Before With Zenmem

What the team gained

  • Every meeting is kept as its own record in one team scope, so a commitment made three meetings ago is still chaseable without an archive table.
  • Spotting the same undecided topic raised again is a search across that scope, not a hand-built similarity index over two sets of notes.
  • Commitments, discussions and thinking-out-loud can share one store and stay distinguishable, instead of needing separate tables to keep the task list trustworthy.
  • The next meeting's agenda is a read over what is already there โ€” no materialised view to rebuild after every write.
  • Nothing is discarded when a meeting closes, so the carry-forward needs no retention policy to protect it.

How memory is scoped

Long-term memory scoped to a team. Each meeting is kept as its own record, so a commitment made three meetings ago is still chaseable and an item discussed twice without a decision can be recognised as a pattern rather than as two unrelated notes. Nothing is discarded when a meeting closes โ€” the carry-forward is the product.

How it works

The run order the collection walks through.

Record the meeting

Notes as written. No structure imposed on the person taking them.

Separate commitment from talk

An owner and a date make a commitment. A discussion with no decision is kept, but not tracked as work.

Chase by person

Overdue items grouped by owner โ€” one message per person, not one per task.

Open the next meeting

Outstanding items and twice-discussed topics become the agenda automatically.

API surface

The whole agent, endpoint by endpoint.

Endpoints

  • POST /api/meeting โ€” record a meeting: team, title, date and the raw notes. Commitments are extracted from these.
  • POST /api/done โ€” mark a commitment done, with who did it and an optional note.
  • GET /api/outstanding/{teamId} โ€” what is still owed, and for how long.
  • GET /api/chase/{teamId} โ€” overdue only, grouped by owner, so one person gets one message rather than four.
  • GET /api/agenda/{teamId} โ€” the next meeting's agenda: outstanding items first, then what has been discussed twice with no decision.