Team-Scoped Memory
Durable memory owned by the current project's team. Authorized agents can store or recall shared decisions and learnings without turning a memory scope into a coordination group.
Team Scope Required
The current project must belong to a team, and the caller must be authorized for that team. The team scope is a memory ownership boundary; it is not a swarm, channel, or independently created group.
Overview
Team Memory extends Agent Memory to work across multiple agents and human teammates. This enables:
- Knowledge sharing — Reviewed discoveries can be recalled across the team
- Reviewable lifecycle — Shared candidates retain owner and authority data
- Cross-project continuity — Team-owned knowledge can be reused by authorized projects
- Explicit filtering — Callers can request only the team partition
How It Works
// Agent A discovers a patternsnipara_remember({ text: "The payment API requires idempotency keys", type: "fact", scope: "team", // Share with the team category: "backend"})// Agent B (different session) can recall itsnipara_recall({ query: "What do I need for payment API calls?", scope: "team"})// Returns: "The payment API requires idempotency keys"Memory Scopes
Memories can exist at different scopes:
| Scope | Visibility | Use Case |
|---|---|---|
agent | The named agent namespace; requires agent_id | Personal preferences, session-specific context |
project | Authorized callers in the current project | Project-wide facts, conventions |
team | Authorized callers in the current project's team | Team knowledge, shared discoveries |
user | The authenticated user across projects | Personal cross-project preferences |
Team Memory vs Swarms
A team is an account/workspace boundary managed through Snipara membership and access controls. Setting scope: "team" stores memory against that existing team. It does not create a new team, group, membership list, or swarm.
snipara_swarm_create belongs to multi-agent coordination. A swarm has agents, tasks, events, and plan-limited capacity, but it does not define a memory scope. Use multi-agent coordination when you need task orchestration rather than durable team-owned knowledge.
MCP Tools for Team Memory
Team scope is an ownership model, not proof that every write tool is in the default Hosted MCP manifest. In the current packaging, recall is the normal inline path while memory writes and richer team operations may be Companion/specialist-surface calls. Confirm the caller with snipara_help; the capacity table below is the Web platform-plan view, not a replacement for legacy MCP quota metadata.
Storing Group Memories
Use the scope parameter to control visibility:
snipara_remember({ text: "Use snake_case for database column names", type: "decision", scope: "team", category: "coding-standards"})Recalling Group Memories
When recalling, specify the team scope to include shared memories:
snipara_recall({ query: "What are our database naming conventions?", scope: "team", category: "coding-standards"})Listing Team Memories
Use snipara_memories with scope filtering to browse team memories:
snipara_memories({ scope: "team", category: "coding-standards", limit: 20})Recall Across Scopes
Pass scope: "team" to query only the team-owned partition. If scope is omitted, recall may gather the authorized agent, user, team, and project partitions before ranking all candidates by semantic relevance, confidence, lifecycle authority, and bounded intent-specific signals. There is no fixed agent → team → project priority order.
Response fields such as scope_partitions, owner,authority_status, and ranking_boosts explain which partitions and bounded signals affected a particular result.
Use Cases
Team Coding Standards
Store coding conventions as team rules so all agents follow the same patterns:
snipara_remember({ text: "All API responses must include a 'success' boolean field", type: "decision", scope: "team", category: "api-standards"})Shared Discoveries
When one agent discovers something useful, share it as a reviewed candidate first. Project policy decides whether it can be approved with a receipt or must wait in the review inbox before another agent recalls it.
// Agent finds a bug workaroundsnipara_remember({ text: "The stripe SDK has a bug with null metadata - always pass empty object", type: "learning", category: "bugs", scope: "team"})Project Context
Store project-wide facts that all agents should know:
snipara_remember({ text: "This project uses Next.js 14 with App Router", type: "fact", scope: "project" // Available to all project agents})Best Practices
- Use team scope for shared knowledge— Don't over-share personal preferences
- Use categories for organization — Group related memories with meaningful category names
- Keep scopes focused— Use "project" for project-specific, "team" for cross-project knowledge
- Review team memories periodically — Prune outdated information
- Combine with Snipara Context — Use memories for dynamic knowledge, Context for static docs
Platform Capacity
Memory and swarm capacity are separate limits. Team-scoped memory counts against the platform memory allowance; creating a swarm counts against the swarm allowance.
| Plan | Hosted Memories | Swarms | Agents/Swarm |
|---|---|---|---|
| Free | 500 | 1 | 2 |
| Solo | 1,500 | 2 | 3 |
| Pro | 10,000 | 8 | 8 |
| Team | 25,000 | 20 | 15 |
| Enterprise | Unlimited | Unlimited | 50 |