Fix the usage example, which called a tool that does not exist
Browse files
README.md
CHANGED
|
@@ -94,8 +94,29 @@ confirmation prompt is a cheaper failure than an unwanted side effect.
|
|
| 94 |
from interlock.model import load_shield
|
| 95 |
|
| 96 |
shield = load_shield("artifacts")
|
| 97 |
-
|
| 98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
```
|
| 100 |
|
| 101 |
It is not a content moderation model, not a prompt-injection detector, and not
|
|
@@ -137,4 +158,4 @@ a substitute for sandboxing or for asking the user.
|
|
| 137 |
| `interlock-linear.gguf` | tier-1 weight container, not a runtime |
|
| 138 |
| `latency.json` | measured per-call latency and peak RSS |
|
| 139 |
|
| 140 |
-
Card generated 2026-08-30T01:
|
|
|
|
| 94 |
from interlock.model import load_shield
|
| 95 |
|
| 96 |
shield = load_shield("artifacts")
|
| 97 |
+
# The request names one file. The call names the directory that contains it.
|
| 98 |
+
verdict = shield.check(
|
| 99 |
+
"Archive the Q3 notes at /work/apollo/q3-notes.md",
|
| 100 |
+
{"tool": "fs.delete_path", "arguments": {"path": "/work/apollo", "recursive": True}},
|
| 101 |
+
)
|
| 102 |
+
print(verdict.decision, verdict.deviation) # block scope_expansion
|
| 103 |
+
for reason in verdict.reasons:
|
| 104 |
+
print(" -", reason)
|
| 105 |
+
```
|
| 106 |
+
|
| 107 |
+
Nothing about that call reads as dangerous on its own: it is an ordinary delete,
|
| 108 |
+
on an ordinary path, in the project the user named. It is wrong only relative to
|
| 109 |
+
the request, which is the only place the difference exists.
|
| 110 |
+
|
| 111 |
+
A tool the model has never seen still gets a verdict rather than an exception,
|
| 112 |
+
because an agent can propose anything:
|
| 113 |
+
|
| 114 |
+
```python
|
| 115 |
+
verdict = shield.check(
|
| 116 |
+
"Rotate the API key for the billing service",
|
| 117 |
+
{"tool": "acme.rotate_key", "arguments": {"service": "billing"}},
|
| 118 |
+
)
|
| 119 |
+
print(verdict.decision, verdict.known_tool) # confirm False
|
| 120 |
```
|
| 121 |
|
| 122 |
It is not a content moderation model, not a prompt-injection detector, and not
|
|
|
|
| 158 |
| `interlock-linear.gguf` | tier-1 weight container, not a runtime |
|
| 159 |
| `latency.json` | measured per-call latency and peak RSS |
|
| 160 |
|
| 161 |
+
Card generated 2026-08-30T01:30:45+00:00 for `NagaYu/interlock`.
|