# Work Squared Technical Foundations
Work Squared is an AI-native environment "operating system" for businesses and organizations in which people and agents can collaborate.
This document introduces some of the underlying architectural foundations. We've found that the underlying [layers of software](https://notes.jessmart.in/Lab+Notebook/Evergreen+Notes/Pace+Layers+for+Software)–data storage, networking, execution runtime–constrain the possibilities of the product experience. In order to facilitate a truly new product experience, we need to think carefully about the technical foundations.
This is a rough sketch that points us in a differentiated direction, not a final answer.
## Why?
Current chat with language models is limited in some key ways:
- Amnesiac Agents - Environment doesn't accrete with artifacts as work is done. Most "work" remains in the context window, or very primitive artifacts.
- No direct manipulation - not an even playing field for agent and human.
- Chats are sync and don't support have the naturalness and complexity of collaboration with a colleague.
- Environments aren't extensible - the domain model and functionality can't be extended at runtime.
## Features
### Data Innovations:
- Event-driven architecture means objects are merely read model projections of the underlying event store
- Agent tool-use is putting events on the event stream, meaning that agent work is non-blocking: it's all background jobs
- Tool-use is always available the the human operator as well, through the same event structure and task-relevant UIs (direct manipulation
- Tools are all MCP-compatible tools
- Needs experimentation
### UI Principles:
- Divide the world into nouns and verbs
- Nouns: objects or artifacts (read model projections of the event stream)
- Verbs: tools or actions (events on the event stream)
- Center column for direct interaction with and manipulation
- Center column is a "stack", supporting interaction with many diverse data types
- Stacks open up a lot of UI innovation surface area!
- Right column for chat, with contextual control (a la Cursor)
### Autopoesis
- LLMs can generate their own tools using a tool-building tool: an MCP tool that can create additional MCP tools
- LLMs can customize their own read models and regenerate from the event stream
- LLMs can generate their own UI to dispatch events and views for the read models
### Multiplayer
- Agent + single human is already a multi-player environment, but no reason you couldn't add _another_ human or AI to the chat / environment (multiplayer is hard in today's LLM world)
### Challenges
- Context window management - how to bring the right things into the context window
- Too general! Can do everything, but can it do anything? The Fermat Trap.
- Mismatch with current post-training for agent-centric models - most agents are trained around the model of using a tool and waiting until it completes (sync) and this is inherently (async),
- What's the model of an agent in this world? Is it one or many?