Workspaces
Organize your AI empire 🗂️
A Workspace is a container for your bots. Think of it as a project or application boundary.
Create Workspace
from memofai import create_moa_client
client = create_moa_client(api_token='moa_your_token')
workspace = client.workspaces.create({
'name': 'Customer Support System',
'description': 'Handles all customer support bots'
})
print(f"Created: {workspace['id']}")
List Workspaces
workspaces = client.workspaces.list()
for ws in workspaces:
print(f"{ws['name']} (ID: {ws['id']})")
Get Workspace
workspace = client.workspaces.get('ws_abc123')
print(workspace)
Update Workspace
updated = client.workspaces.update({
'id': 'ws_abc123',
'name': 'Updated Name',
'description': 'New description'
})
Delete Workspace
client.workspaces.delete('ws_abc123')
Warning: Deleting a workspace deletes all its bots and memories!
Best Practices
One Workspace Per Project
# ✅ Good - Separate projects
support_ws = client.workspaces.create({'name': 'Customer Support'})
sales_ws = client.workspaces.create({'name': 'Sales Automation'})
personal_ws = client.workspaces.create({'name': 'Personal Assistant'})
# ❌ Bad - Everything in one
everything_ws = client.workspaces.create({'name': 'All My Stuff'})
Use Descriptive Names
# ✅ Good
workspace = client.workspaces.create({
'name': 'E-Commerce Customer Support',
'description': 'Handles customer inquiries for online store'
})
# ❌ Bad
workspace = client.workspaces.create({'name': 'Workspace 1'})
Common Patterns
Single Workspace App
class MyApp:
def __init__(self):
self.client = create_moa_client(api_token='moa_token')
self.workspace = self._get_or_create_workspace()
def _get_or_create_workspace(self):
workspaces = self.client.workspaces.list()
# Find or create
app_ws = next(
(ws for ws in workspaces if ws['name'] == 'My App'),
None
)
if not app_ws:
app_ws = self.client.workspaces.create({
'name': 'My App',
'description': 'Main application workspace'
})
return app_ws
Multi-Tenant with Workspaces
def get_tenant_workspace(tenant_id: str):
"""One workspace per tenant"""
workspaces = client.workspaces.list()
tenant_ws = next(
(ws for ws in workspaces if ws['name'] == f'tenant_{tenant_id}'),
None
)
if not tenant_ws:
tenant_ws = client.workspaces.create({
'name': f'tenant_{tenant_id}',
'description': f'Workspace for tenant {tenant_id}'
})
return tenant_ws
Next: Bots →