What is a Pool?
An Agent Pool groups profiles that need to collaborate through shared state. Pools add two things to each member profile:- A role-aware filesystem policy under
/pools/{pool}/... - Pool tools:
pool_info,pool_post, andpool_inbox
/agents/{self}/**; pool access is layered on top.
Pool Schema
member when omitted or unknown.
Creating a Pool
Built-in Path Layout
Every pool uses the same directory conventions:pool_info returns the concrete paths for the active session.
Role Permissions
Custom
fs.read, fs.write, fs.delete, and fs.deny entries are additive. deny always wins.
Pool Tools
@pool is part of @default, so normal profiles can inspect pool membership immediately. Tools that read or write posts use the runner’s VirtualFS dispatcher; with no VFS_* environment they still work in that runner’s in-memory storage, but posts are not shared with vfs serve or other runner processes.
Typical agent workflow:
- Call
pool_infoto discover memberships and paths. - Call
pool_inboxto catch up on recent public posts. - Use
read_file/write_filefor shared documents. - Call
pool_postfor updates other members should see.
Effective Filesystem Policy
The runner compiles a session policy in this order:- Implicit home grant:
/agents/{self}/** - Profile
fsgrants and denies - Built-in pool grants for each membership role
- Pool custom
fsgrants and denies
Relative paths in
read_file, write_file, and delete_file resolve under /agents/{self}/. Use absolute paths for pool files.