Moore IQMoore IQRun the X-Ray

The Agentic Coworker Pattern - Giving a Claude Agent a Durable Role, Memory, and a Seat at the Standup

An AI coworker is not a chatbot that answers questions. It is an agent with a clear role, persistent memory of its own work, and a real slot in the team's cadence. Most teams build the first and skip the last two.

Why "AI coworker" is not just a metaphor

Most teams treat AI as a query machine. You ask, it answers, you move on. That pattern works for one-off lookups, but it does not scale to the kind of sustained, context-aware contribution that actually changes team throughput. An AI coworker is a different architectural pattern, not a different chatbot.

The coworker framing forces three decisions that the chatbot framing skips entirely. First, what is this agent's scope, and what is outside it? Second, where does it store what it has learned, and how does it read that back at the start of the next session? Third, how does the team's work rhythm create a natural trigger for the agent to contribute, and who is accountable for actually reading what it produces?

When you answer those three questions in advance, you stop rebuilding context from scratch every session. You get an agent that compounds. Each run builds on the last. Preferences, edge cases, decisions, and prior work all carry forward. That is what separates a coworker from a glorified autocomplete.

The three properties: role, memory, cadence

Every functioning AI coworker has three properties in common. Role is what the agent does and, just as importantly, what it does not do. Memory is persistent context stored outside the session that the agent loads at the start and updates at the end. Cadence is the recurring trigger that makes the agent's output a real input to human work rather than an optional artifact that gets ignored.

Strip any one of these and you lose a qualitatively different amount of value. No role means the agent is undefined and every session is improvised. No memory means the agent forgets every conversation and cannot compound. No cadence means its output may be technically good but never actually gets used.

All three are required for the pattern to work. Two out of three is not partial credit. It is a fancy chatbot.

What does a durable role actually look like?

A role definition is not a job title. It is a short document the agent reads at session start that tells it what it owns, what it does not touch, and how to behave when it hits ambiguity. A standup reviewer role might say: read yesterday's commits, open PRs, and ticket status updates; write a 200-word summary of blockers, momentum, and anything that needs a human decision today; do not make recommendations about architecture or priorities unless directly asked. That specificity prevents scope creep and makes the agent's output predictable.

A QA review agent's role looks different. It reads new diffs, checks them against a test checklist stored in its memory layer, and files structured comments in the PR. It does not close tickets. It does not make deployment decisions. It does not touch anything outside the specific files in the diff. The narrower the role, the more reliable the output.

A research agent for a sales team might be scoped to: pull publicly available information about a named prospect, summarize their tech stack and recent news, and format findings to a specific template stored in its memory. Nothing else. When the role is tight, the agent can be trusted without heavy supervision. Tight roles are also easier to audit. If the agent drifts outside its role you know exactly what went wrong and where to fix it.

Memory: where it lives and how it updates

Session memory stored only in the chat context is not real memory. When the session ends, it is gone. A real memory layer lives outside the conversation and survives session boundaries. The simplest implementation is a Markdown file the agent reads at the start of every session and appends to at the end. For a standup reviewer, that file might store: the team's known recurring blockers, what the last three summaries said, and any style preferences the team has requested. Two hundred lines of Markdown is often enough for a well-defined role.

Structured JSON logs work well for agents that accumulate factual records. A research agent that profiles prospects can store every completed profile in a JSON file keyed by domain. At the start of the next session, it checks the log before researching. If the profile exists and is recent, it skips the scrape. This prevents re-running expensive operations and makes the agent faster over time.

Vector databases are the right choice when memory grows large enough that keyword or recency lookup is not sufficient. If an agent needs to recall semantically similar past decisions or find prior work that matches a new request, embeddings beat flat files. But most teams do not need this on day one. Start with Markdown or JSON. Migrate to a vector layer when the flat file hits a few thousand entries and recall starts degrading. The Claude Code documentation covers memory patterns and hook-based session management that make this straightforward to implement without custom infrastructure. For teams adopting this pattern at scale, understanding how skills, tools, and MCP servers fit together is essential to building extensible agent roles.

Hybrid approaches are common in practice. A flat Markdown file holds preferences, decisions, and short-term context. A JSON log holds the structured work history. A vector index holds the long tail of past work for semantic retrieval. Each layer serves a different recall pattern. The agent queries the appropriate layer for the task at hand.

A seat at the standup: why cadence is architecture

An agent that produces good output nobody reads is not an agent. It is a cron job with a nice UI. Cadence is the mechanism that forces the team to treat agent output as a real input to human decisions.

The standup is a natural integration point because it already has a forcing function. Every team member shows up, reviews blockers, and decides what to work on next. An agent that posts its summary to the standup channel 10 minutes before the meeting starts creates a norm: the summary is one of the inputs you read before the meeting begins. It does not replace the meeting. It is the equivalent of a well-organized teammate who already reviewed the diffs and has a clear read on what needs attention.

The key is treating the agent as a contributor, not a tool. A tool is optional. A contributor has a responsibility slot in the team's process. When the standup reviewer's post goes unread for a week, that is a signal the role needs to be redefined, not that AI is failing. If no human is accountable for reading the output and acting on it, the cadence does not exist. Assign ownership. Put it in the standup agenda. Treat it the same way you would treat a contractor's deliverable: read it, respond to it, give feedback on format or focus. That feedback loop is what makes the agent improve over time.

Three starter roles most teams can ship in under a week

The standup reviewer is the lowest-risk starting point. It reads commits, PR activity, and ticket updates from the prior 24 hours and posts a plain-language summary. The scope is narrow, the output is easy to evaluate, and the feedback loop is daily. If the summary is wrong or misses something important, you know within hours, not weeks. Most teams can have a working standup reviewer running in two to three days using Claude Code with a simple shell hook and a Markdown memory file.

The release note writer is the second easiest. It reads the diff between the current and last release, formats a structured changelog, and drafts external-facing release notes in the team's voice. The memory layer stores the voice guidelines, past release notes for style reference, and any terms or naming conventions the team has standardized. The agent's output is never published without human review, but writing from a strong draft is 10 times faster than writing from a blank page.

The onboarding briefer takes a new contractor or employee's name and start date and assembles a brief: current project status, relevant prior decisions stored in the memory layer, open questions the team is working through, and recommended first reads. The memory layer here is the most important component. A rich memory of project decisions, architectural choices, and team preferences means the briefer produces a document that would take a senior team member two hours to write manually. That is two hours back every time someone new joins.

Failure modes to watch for

Role creep is the most common failure. An agent that starts as a standup reviewer gradually gets asked to weigh in on priorities, estimate timelines, and make recommendations on architectural decisions. Each individual expansion seems reasonable. Collectively, they turn a tight, reliable agent into a broad, unreliable one. Review the role definition quarterly. If the agent is regularly being asked to do things outside its original scope, either formally expand the role with new constraints or split it into two agents with separate scopes.

Stale memory is the second failure mode. An agent that reads a memory file updated six months ago has a model of the team that no longer reflects reality. Memory maintenance needs to be part of the agent's job, not an afterthought. At session end, the agent should review what it did, identify what should be added to or updated in the memory file, and make those writes. If memory updates are left to humans, they will not happen consistently enough to matter.

The third failure mode is ignoring output. This is a team failure, not an agent failure, but it kills the pattern just as effectively. If the standup reviewer's summary gets scanned for two days and then ignored, the team is sending a signal that the output is not worth the attention. That might mean the role is wrong, the output format is wrong, or the cadence is wrong. Run a quick retrospective. Ask what would make the output worth reading every single day. Adjust the role definition and memory layer based on the answer. An agent that no one reads should be retooled or retired.

How Moore IQ runs these

The agents I run daily at Moore IQ are not theoretical. The standup reviewer pattern described here is real infrastructure. Every morning, a Claude Code session opens with a hook that reads the memory file for the active project, pulls recent git log output and any overnight ticket activity, and produces a brief that tells me what moved, what is blocked, and what needs a decision before I start coding. The memory file stores project decisions, open questions, and preferences that would otherwise take 10 minutes of context reconstruction at the start of each session.

The Claude Code skills system is what makes the role definitions portable. Each role lives as a skill file that gets loaded at session start via a hook. The skill tells the agent what it is doing, what tools it has access to, and how to update memory on close. The Anthropic SDK handles programmatic agent calls for the automations that run on a schedule rather than interactively. The memory layer is a combination of Markdown files for project context and structured JSON for work history. Nothing exotic. Everything runs locally or on a small VPS.

The pattern works because it is not magic. It is just good engineering applied to the problem of keeping an AI agent oriented across sessions. Role, memory, and cadence are the same primitives that make human coworkers reliable. The only difference is you have to be more explicit about them with an agent than you would with a person. Write the role down. Build the memory layer before you need it. Put the output into the team's actual rhythm. The compounding starts the day you do.

Want a coworker mapped for your team? Run the AI Operations X-Ray.

Frequently asked questions

What is the difference between an agent and a coworker?
An agent executes tasks on command. A coworker has a persistent role, remembers prior context, and participates in the team's rhythm. The coworker framing leads to different architecture choices.
How does the agent actually remember across sessions?
A memory layer stored outside the chat context. Could be a Markdown file, a vector database, or a structured JSON log the agent reads at session start and updates on session close.
Does the agent need access to our repo or tools?
Yes for most useful roles. Read-only access to the repo and scoped write access to specific tools. The role definition determines the scope.
What role is easiest to stand up first?
A standup reviewer. Every morning it reads the prior day's commits, ticket updates, and PR comments and posts a brief summary. Low risk, high feedback loop, teaches the team what works.
How do you know when it is time to fire the coworker?
When its output stops improving team velocity or starts introducing noise. Audit quarterly. If the human review cost exceeds the time saved retire or redefine the role.

Related reading

Next step

Want help applying this?

Run the 90-second AI Operations X-Ray and I'll show you where to start.