You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: MANUAL.md
-121Lines changed: 0 additions & 121 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -203,52 +203,6 @@ agentfs fs cat hello.txt
203
203
agentfs fs cat /artifacts/report.txt
204
204
```
205
205
206
-
## How AgentFS Works
207
-
208
-
### Architecture
209
-
210
-
```
211
-
┌─────────────────────────────────────────┐
212
-
│ Agent Application │
213
-
├─────────────────────────────────────────┤
214
-
│ AgentFS Sandbox (Hermit) │
215
-
│ Filesystem Interception Layer │
216
-
├─────────────────────────────────────────┤
217
-
│ /agent mount point │
218
-
├─────────────────────────────────────────┤
219
-
│ Agent Filesystem (agent.db) │
220
-
│ SQLite Database │
221
-
└─────────────────────────────────────────┘
222
-
```
223
-
224
-
### Filesystem Interception
225
-
226
-
AgentFS uses [Hermit](https://github.com/facebookexperimental/hermit), a deterministic execution sandbox that intercepts all system calls. When a program running inside AgentFS attempts filesystem operations on `/agent/*`, AgentFS:
227
-
228
-
1.**Intercepts** the system call (open, read, write, etc.)
229
-
2.**Translates** the path to a SQLite query
230
-
3.**Executes** the operation on the agent database
231
-
4.**Returns** results to the program
232
-
233
-
This is completely transparent to the application - it sees `/agent` as a normal POSIX filesystem.
234
-
235
-
### SQLite as a Filesystem
236
-
237
-
The agent filesystem uses a Unix-like inode design implemented in SQLite. See the [Agent Filesystem Specification](SPEC.md) for complete details.
238
-
239
-
**Key features:**
240
-
-**Inodes** - Each file/directory has a unique inode number and metadata
241
-
-**Directory entries** - Map names to inodes (enables hard links)
-**Single file** - Entire filesystem in one `.db` file
247
-
-**Snapshotting** - Copy the file to snapshot complete state
248
-
-**Auditability** - Query filesystem history with SQL
249
-
-**ACID transactions** - Consistency guarantees
250
-
-**Portability** - Works everywhere SQLite works
251
-
252
206
## AgentFS SDK
253
207
254
208
The AgentFS SDK provides a TypeScript/JavaScript interface for building agents that use the agent filesystem. It offers three main APIs for working with the agent database:
@@ -664,86 +618,11 @@ Or use the SQL interface from your application to analyze agent behavior, search
664
618
665
619
See the [Agent Filesystem Specification](SPEC.md) for the complete schema.
666
620
667
-
## Use Cases
668
-
669
-
### 1. Agent Development and Testing
670
-
671
-
- Run agents in isolated environments
672
-
- Snapshot state before risky operations
673
-
- Replay agent execution from checkpoints
674
-
- Debug by querying filesystem history
675
-
676
-
### 2. Production Agent Deployment
677
-
678
-
- Monitor agent filesystem access
679
-
- Audit all file operations
680
-
- Track tool invocations and errors
681
-
- Maintain complete operation history
682
-
683
-
### 3. Multi-Agent Systems
684
-
685
-
- Each agent gets its own `.db` file
686
-
- Share data by mounting common databases
687
-
- Analyze agent interactions via SQL queries
688
-
- Compare agent behavior across runs
689
-
690
-
### 4. Agent Training and Fine-tuning
691
-
692
-
- Capture agent decisions and outcomes
693
-
- Query successful vs. failed operations
694
-
- Extract training data from agent history
695
-
- Analyze tool usage patterns
696
-
697
-
## Security Considerations
698
-
699
-
**Sandboxing:**
700
-
- AgentFS intercepts filesystem operations but doesn't provide full security isolation
701
-
- Programs can still make network calls, execute system commands, etc.
702
-
- Use additional security measures (containers, VMs, network policies) for untrusted code
703
-
704
-
**Database Security:**
705
-
- Agent databases are SQLite files - protect them like any sensitive data
706
-
- Use file permissions to restrict access
707
-
- Encrypt databases at rest if needed
708
-
- Be cautious with sensitive data in tool call parameters/results
709
-
710
-
**Determinism:**
711
-
- The Hermit sandbox provides deterministic execution
712
-
- Same inputs produce same outputs (useful for testing)
713
-
- Some non-deterministic operations may be restricted
714
-
715
-
## Troubleshooting
716
-
717
-
### "agent.db already exists"
718
-
719
-
Use `--force` to overwrite:
720
-
```bash
721
-
agentfs init --force agent.db
722
-
```
723
-
724
-
### Program can't find files in /agent
725
-
726
-
Make sure you're running the program with `agentfs run`:
727
-
```bash
728
-
agentfs run /bin/bash
729
-
```
730
-
731
-
Files written to `/agent` inside the sandbox are stored in `agent.db`, not on the host filesystem.
732
-
733
-
### SQLite database is locked
734
-
735
-
Only one process can write to the database at a time. Make sure you don't have multiple `agentfs run` instances using the same `agent.db` file.
736
-
737
-
### Permission denied errors
738
-
739
-
Check file permissions in the agent filesystem using `agentfs fs ls -l` (once implemented) or by querying the `fs_inode` table directly.
740
-
741
621
## Learn More
742
622
743
623
-**[Agent Filesystem Specification](SPEC.md)** - Complete technical specification of the filesystem schema
744
624
-**[SDK Examples](sdk/examples/)** - Working code examples
745
625
-**[README](README.md)** - Project overview and motivation
746
-
-**[Hermit Project](https://github.com/facebookexperimental/hermit)** - The underlying sandbox technology
0 commit comments