exoagent 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -7
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@ Today's agent frameworks give LLMs raw access to tools. The "security model" is
|
|
|
11
11
|
|
|
12
12
|
- 🚨 **Authorization is broken:** Tool calls inherit *your* full permissions. You asked for dinner delivery; your driver got your wallet.
|
|
13
13
|
- 🌫️ **Interfaces are opaque:** `execute_sql("SELECT * FROM users")` is a black box. Policy engines can't enforce constraints on raw strings.
|
|
14
|
-
- 🕸️ **No central policy:** Each tool enforces its own rules. There is no
|
|
14
|
+
- 🕸️ **No central policy:** Each tool enforces its own rules. There is no way to guarantee that data doesn't leak across them.
|
|
15
15
|
|
|
16
16
|
## The Fix: Deterministic security, not Prompts
|
|
17
17
|
|
|
@@ -25,6 +25,10 @@ It doesn't matter if the LLM gets jailbroken. It runs inside a sandbox where inv
|
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
27
|
npm install exoagent ai
|
|
28
|
+
|
|
29
|
+
# These two depend on your config
|
|
30
|
+
npm install @ai-sdk/google # ...or the model provider you plan to use
|
|
31
|
+
npm install better-sqlite3 # ...or the database you plan to use (Kysely compatible only)
|
|
28
32
|
```
|
|
29
33
|
|
|
30
34
|
### 2. Define your Safe Interface
|
|
@@ -109,9 +113,9 @@ Note the examples require:
|
|
|
109
113
|
1. NodeJS (runtime)
|
|
110
114
|
2. [Deno](https://docs.deno.com/runtime/getting_started/installation/) (sandbox)
|
|
111
115
|
3. An LLM API key set via one of the env vars:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
116
|
+
- `OPENAI_API_KEY`
|
|
117
|
+
- `ANTHROPIC_API_KEY`
|
|
118
|
+
- `GOOGLE_GENERATIVE_AI_API_KEY`
|
|
115
119
|
|
|
116
120
|
## Architecture
|
|
117
121
|
ExoAgent sits between your LLM and your infrastructure as a regular tool.
|
|
@@ -119,10 +123,10 @@ ExoAgent sits between your LLM and your infrastructure as a regular tool.
|
|
|
119
123
|
2. **Runtime**: Runs in a JS code sandbox (user-configured; Deno supported out of the box, more to come).
|
|
120
124
|
3. **Query Builder**: Uses a custom capability SQL builder that compiles to safe SQL.
|
|
121
125
|
|
|
122
|
-
## Project Status
|
|
123
|
-
|
|
126
|
+
## ⚠️ Project Status: Experimental (v0.0.x)
|
|
127
|
+
ExoAgent is an exploration of capability-based security for LLMs. While the architecture (OCaps + Sandboxing) is theoretically robust, this specific implementation is new and may contain bugs.
|
|
124
128
|
|
|
125
|
-
|
|
129
|
+
**The Guarantee**: We are confident enough in the core design that we are putting real money on the line. If you find a bypass, you get paid.
|
|
126
130
|
|
|
127
131
|
## Roadmap
|
|
128
132
|
|
|
@@ -133,11 +137,13 @@ It is pre-1.0 and experimental, but we're confident enough we're putting real mo
|
|
|
133
137
|
|
|
134
138
|
### FAQs
|
|
135
139
|
**Q: Why not just use RLS (row-level security)?**
|
|
140
|
+
|
|
136
141
|
A: Two main reasons:
|
|
137
142
|
1. **Defense in Depth:** RLS has existed for a decade, yet no security team allows raw, untrusted SQL to run against production databases. You still need protection against resource exhaustion, unsafe functions, and column-level leaks.
|
|
138
143
|
2. **Logic beyond the DB:** RLS is locked to the database. ExoAgent is a **general-purpose policy layer**. We want to enforce rules that span systems, like: *"The `email` column is PII. PII cannot be sent to the Slack tool."*
|
|
139
144
|
|
|
140
145
|
**Q: Why not just use "LLM Guardrails" or System Prompts?**
|
|
146
|
+
|
|
141
147
|
A: Those are **Probabilistic**. Guardrails reduce the *likelihood* of a breach, but they don't eliminate it. In security, a 99% success rate is a failing grade. ExoAgent provides **Deterministic** security—if the agent doesn't have the capability, the action is mathematically impossible.
|
|
142
148
|
|
|
143
149
|
## License
|