Why today’s agent collaboration often falls short of real collaboration:
Agents typically run inside sandboxes, keeping the agent loop, filesystem, and subprocesses in one environment. This supports deeper work, longer tasks, and specialized workflows. For asynchronous work—“one task, one environment, one PR”—it’s an efficient, pragmatic architecture.
But it also tightly couples each agent to a single sandbox. That creates three problems:
1. Agents are trapped inside their sandboxes
Each task gets a fresh sandbox, so the agent has to initialize from scratch every time.
Beyond the cold-start cost, there’s the memory it develops while working: where to start debugging, what the user cares about, how to reflect on its own work afterward.
Those lessons disappear when the task ends. They don’t automatically carry over or stay synchronized across sandboxes.
2. Parallel execution doesn’t deliver real collaboration
Running more tasks in parallel works well when the work has clear boundaries. But complex work involves dependencies between collaborators.
Real collaboration requires effective division of labor, shared state, conflict resolution, and a way to bring results together.
The agent group chats and agent teams we’ve seen mostly increase the number of agents executing concurrently. They don’t make it safe for multiple people and agents to work simultaneously in the same project or workspace.
When each agent is tied to its own sandbox, it lives in a separate universe. It can’t see what others are actually doing as they work. Collaboration and sharing still happen after the fact, through Git or shared-drive synchronization.
This architecture gives us more parallel tasks, but it doesn’t give us real parallel collaboration.
3. Performance pressure and difficult engineering problems
What if we solve this by putting all the collaborating agents into the same sandbox?
It’s theoretically possible, but difficult to make practical.
Every agent brings its own session management, network requests, skills, and CLI tools. All the CPU usage, memory consumption, and filesystem I/O concentrate on a single node. That’s an expensive tradeoff in both performance and compute cost.
Forcing an environment designed for one agent to support many also introduces difficult engineering problems:
How do you enforce identity boundaries between tenants?
How do you separate private and shared areas?
How do you commit agents’ writes in a controlled order?
How do you trace file changes back to the agent that made them?
How do you prevent conflicting commands and deduplicate execution?
How do you define and coordinate each agent’s lifecycle?
23:33
Forcing an environment designed for one agent to support many also introduces difficult engineering problems:
How do you enforce identity boundaries between tenants?
How do you separate private and shared areas?
How do you commit agents’ writes in a controlled order?
How do you trace file changes back to the agent that made them?
How do you prevent conflicting commands and deduplicate execution?
How do you define and coordinate each agent’s lifecycle?
Why today’s agent collaboration often falls short of real collaboration:
Agents typically run inside sandboxes, keeping the agent loop, filesystem, and subprocesses in one environment. This supports deeper work, longer tasks, and specialized workflows. For asynchronous work—“one task, one environment, one PR”—it’s an efficient, pragmatic architecture.
But it also tightly couples each agent to a single sandbox. That creates three problems:
3. Performance pressure and difficult engineering problems
What if we solve this by putting all the collaborating agents into the same sandbox?
It’s theoretically possible, but difficult to make practical.
Every agent brings its own session management, network requests, skills, and CLI tools. All the CPU usage, memory consumption, and filesystem I/O concentrate on a single node. That’s an expensive tradeoff in both performance and compute cost.
和 AI 聊天很容易,但把一件事真正做完,却没那么简单。
今天让 AI 帮你梳理需求,明天让它改代码;过两天换了同事接手,前面的背景、讨论和踩坑记录,又要重新解释一遍。看似每次都在高效对话,实际上团队一直在重复“找回上下文”。
https://t.co/26eYtOPmAF更像是一个让人、项目和 AI Agent 长期一起工作的共同空间。
在 Tutti 里,项目不该随着聊天窗口关闭而中断。需求、讨论、任务进展、代码改动、验证结果,以及 AI 做过的探索,都可以沉淀在同一个持续存活的工作区里。
团队成员不用反复讲背景,接手工作更顺畅。
已经做过的尝试和决策不会散落在个人聊天记录里。
人负责判断和协作,AI Agent 负责执行、调研、测试和推进。
每一次协作,都能成为下一次工作的基础。
真正高效的 AI 协作,不是写出一句完美提示词,而是让上下文、任务和成果能够持续存在、被团队共享、被不断复用。
Tutti 想做的,就是这样一个持久化共同工作区,每个人带着自己熟悉的agent进来,在这里一起创造。
你觉得未来的团队协作,会从“人用 AI”变成“人和 AI 一起工作”吗?
和大家聊一个反直觉的多 agent 并行方案吧
不开分支,不开 worktree,多个 agent 直接挤在同一个分支、同一个工作目录里同时干活
听起来通疯狂的,但这是 Pi 仓库 AGENTS.md 的默认假设:同一目录下可能同时跑着多个 pi 会话,每个会话各自改不同的文件
它的隔离逻辑和我们熟悉的 git 协作完全反过来
传统多人协作靠分支,一人一条线,最后 merge Pi 这套靠文件级分工,只要各会话改的文件不重叠,就天然没有冲突,连分支都不用切
那 git 在里面负责什么 它不负责隔离,反而成了最需要提防的东西,因为工作区和暂存区是所有会话共享的:
git add -A 会把别的会话改的文件一起塞进你的 commit,所以必须写明路径
reset --hard、stash、clean 操作的是整个工作区,一条命令就能清掉别人没提交的活
真有两个会话改到同一个文件,规则要求立刻停下问用户,agent 不许自己处理冲突
对应原文放这:
Multiple pi sessions may be running in this cwd at the same time, each
modifying different files. Git operations that touch unstaged, staged, or
untracked files outside your own changes will stomp on other sessions' work.
Committing:
- Only commit files YOU changed in THIS session.
- Stage explicit paths (`git add <path1> <path2>`); never `git add -A` / `git add .`.
- Before committing, run `git status` and verify you are only staging your files.
Never run (destroys other agents' work or bypasses checks):
- `git reset --hard`, `git checkout .`, `git clean -fd`, `git stash`,
`git add -A`, `git add .`, `git commit --no-verify`.
If rebase conflicts occur:
- Resolve conflicts only in files you modified.
- If a conflict is in a file you did not modify, abort and ask the user.
- Never force push.
我今天拉 Pi 的源码看的时候就看了一眼,这套方案的本质是把「分支级隔离」换成了「文件级分工 + git 操作自律」
好处是轻,省掉切分支和 merge 的成本,会话之间能立刻看到彼此的改动,commit 全在一条线上 代价是成立的前提很明确:任务拆分时就得保证各 agent 碰的文件不重叠
常见的并行方案是给每个 agent 一个独立 worktree,安全但重 Pi 给了另一个方向:只要分工够细、纪律够硬,一个工作区也能并行
但是仅仅靠 prompt 去约束肯定不是 100% 的,这套也只是假设,我看到觉得还蛮有意思的就分享了一下