Skip to content

Commit 579e77a

Browse files
ZhiXiao-LinRoyLin
andauthored
docs: README current with SecurityAction, exit signals + 8-node soak (#4)
- architecture diagram + intro list the exit and SecurityAction signals - Tested section: 8-node cluster large-scale soak; note the adversarial verify pass that twice caught per-thread event dup; fix provider count 14→15 Co-authored-by: RoyLin <roylin@RoyLindeMacBook-Pro.local>
1 parent e79e604 commit 579e77a

1 file changed

Lines changed: 13 additions & 8 deletions

File tree

README.md

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
Kernel-level **eBPF observability — and optional intervention — for AI agents.** It turns
44
syscalls and network events into agent-semantic telemetry (which agent ran which tool, made
5-
which LLM call, touched which files, reached which endpoint) with **zero changes to the agent
5+
which LLM call, touched which files, reached which endpoint, escalated privileges) with **zero changes to the agent
66
and no per-language instrumentation** — and the same kernel vantage point can **intervene**:
77
deny an agent's egress, file access, or process execution from an external policy.
88

@@ -19,12 +19,12 @@ can never break observability.
1919
```
2020
AI agent + its tool subprocesses unmodified · any language
2121
22-
│ execve · connect · TLS ClientHello · DNS · openat · read/recv · SSL_*
22+
│ execve · do_exit · connect · TLS ClientHello · DNS · openat · setuid/ptrace/bind · SSL_*
2323
══════════╪═══════════════════════════════════════════════ KERNEL (eBPF + fanotify)
2424
2525
OBSERVE (passive, always-on) INTERVENE (opt-in, external policy)
26-
exec connect sni dns enforce → cgroup/connect4: deny egress
27-
llm-metrics file* ssl-content* fileguard → fanotify: deny open + exec
26+
exec exit connect sni dns enforce → cgroup/connect4: deny egress
27+
security llm-metrics file* ssl* fileguard → fanotify: deny open + exec
2828
2929
│ ring buffers
3030
══════════╪═══════════════════════════════════════════════ USERSPACE
@@ -198,16 +198,21 @@ Rust + [Aya](https://aya-rs.dev). Validated on Linux 6.8.
198198

199199
## Tested
200200

201-
Soak-tested under sustained load — observe on a production host, intervene in an isolated VM:
201+
Soak-tested under sustained load — observe on real hosts (including a **24-min large-scale soak
202+
across an 8-node Kubernetes cluster**, observe-only DaemonSet: flat RSS, zero drops, zero
203+
restarts, non-disruptive), intervene in an isolated VM:
202204

203205
| path | cases (all leak-free + correct under load) |
204206
|---|---|
205-
| **observe** | steady 20 min · edge-input · **a real a3s-code agent** · throughput 110k ev/60s · memory-bound (256 Mi) · restart ×8 · idle + heartbeat · SIGTERM · concurrent collectors · backpressure · connection-churn |
207+
| **observe** | steady 20 min · edge-input · **a real a3s-code agent** · throughput 110k ev/60s · memory-bound (256 Mi) · restart ×8 · idle + heartbeat · SIGTERM · concurrent collectors · backpressure · connection-churn · **8-node cluster** |
206208
| **intervene** | egress · file/exec · SSL-content guards — and all three running alongside the collector |
207209

208-
Two robustness bugs surfaced and were fixed this way: NDJSON stdout pollution (v0.9.1) and an
210+
Every new signal is validated live (correct payload, verifier loads clean) and reviewed by an
211+
adversarial multi-agent pass before release — which has **twice** caught a per-thread event
212+
duplication (multithreaded `do_exit` / `setuid`) that single-threaded tests missed. Soak also
213+
surfaced two robustness bugs, since fixed: NDJSON stdout pollution (v0.9.1) and an
209214
output-backpressure event-loop stall (v0.9.2). Lib line coverage **79.6%** (`cargo llvm-cov`) —
210-
the untrusted SNI / DNS / cgroup parsers and the full 14-provider classifier are unit-tested.
215+
the untrusted SNI / DNS / cgroup parsers and the full 15-provider classifier are unit-tested.
211216

212217
## Security
213218

0 commit comments

Comments
 (0)