NagaYu commited on
Commit
acba802
·
verified ·
1 Parent(s): 295d0f9

Fix the usage example, which called a tool that does not exist

Browse files
Files changed (1) hide show
  1. README.md +24 -3
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
- verdict = shield.check("archive the Q3 notes", {"tool": "fs.delete_file", "arguments": {"path": "notes/"}})
98
- print(verdict.decision, verdict.deviation)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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:25:20+00:00 for `NagaYu/interlock`.
 
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`.