From b5f6f307e2c344719ed5416cae3e027c2a9056e3 Mon Sep 17 00:00:00 2001 From: Aaliya Khan Date: Sun, 23 Aug 2026 12:10:25 +0530 Subject: [PATCH 1/2] docs: add reading order for the security model to GETTING_STARTED.md --- sdk/docs/GETTING_STARTED.md | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sdk/docs/GETTING_STARTED.md b/sdk/docs/GETTING_STARTED.md index 2182a93..ce28c37 100644 --- a/sdk/docs/GETTING_STARTED.md +++ b/sdk/docs/GETTING_STARTED.md @@ -91,15 +91,18 @@ pip install unplug-ai python -c "from unplug import Guard; print(Guard().scan('hello', source='user').safe)" ``` -## What to read next +## Understanding the security model + +If you want to know why Unplug makes the decisions it does, read these in order: | Goal | Doc | |------|-----| -| Wire Unplug into **your** agent loop | [`integrations/custom-loop/README.md`](https://github.com/UnplugAI/Unplug/blob/dev/sdk/integrations/custom-loop/README.md) | -| LangGraph, CrewAI, OpenAI Agents, … | [`integrations/README.md`](https://github.com/UnplugAI/Unplug/blob/dev/sdk/integrations/README.md) | -| **REVIEW** vs **BLOCK** (human approval) | [`docs/AGENT_ACTIONS.md`](AGENT_ACTIONS.md) | -| Full SDK reference | [`README.md`](https://github.com/UnplugAI/Unplug/blob/dev/sdk/README.md) | -| Hosted API / sidecar | [`docs/DEPLOYMENT.md`](DEPLOYMENT.md) | +| The mental model: Guard → Pipelines → Scanners → Core, and how TaintedText/TrustLevel mark untrusted spans. Start here. | [`ARCHITECTURE.md`](ARCHITECTURE.md) | +| What happens to a marked span next: redact, block, or review. | [`AGENT_ACTIONS.md`](AGENT_ACTIONS.md) | +| Taint and actions across a full agent loop — session taint, `notify_taint_source`, adaptive degradation. | [`AGENT_FLOW_SECURITY.md`](AGENT_FLOW_SECURITY.md) | +| A worked example of the above: scanning context files, skills, and cron prompts before they reach the model. | [`HERMES_AGENT_SECURITY.md`](HERMES_AGENT_SECURITY.md) | +| The same taint/redact ideas applied to retrieval (RAG). | [`RAG_DEFENSE.md`](RAG_DEFENSE.md) | +| Once the model above makes sense, which imports to build against. | [`PUBLIC_API.md`](PUBLIC_API.md) | ## Common mistakes From 3ef2138b9e74943f43b80feaff772dfa90dde555 Mon Sep 17 00:00:00 2001 From: Aaliya Khan Date: Mon, 24 Aug 2026 21:38:20 +0530 Subject: [PATCH 2/2] docs: restore integrations/deployment table, keep security-model table separate --- sdk/docs/GETTING_STARTED.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sdk/docs/GETTING_STARTED.md b/sdk/docs/GETTING_STARTED.md index ce28c37..713b26d 100644 --- a/sdk/docs/GETTING_STARTED.md +++ b/sdk/docs/GETTING_STARTED.md @@ -91,6 +91,15 @@ pip install unplug-ai python -c "from unplug import Guard; print(Guard().scan('hello', source='user').safe)" ``` +## What to read next + +| Goal | Doc | +|------|-----| +| Wire Unplug into **your** agent loop | [`integrations/custom-loop/README.md`](https://github.com/UnplugAI/Unplug/blob/dev/sdk/integrations/custom-loop/README.md) | +| LangGraph, CrewAI, OpenAI Agents, … | [`integrations/README.md`](https://github.com/UnplugAI/Unplug/blob/dev/sdk/integrations/README.md) | +| Full SDK reference | [`README.md`](https://github.com/UnplugAI/Unplug/blob/dev/sdk/README.md) | +| Hosted API / sidecar | [`docs/DEPLOYMENT.md`](DEPLOYMENT.md) | + ## Understanding the security model If you want to know why Unplug makes the decisions it does, read these in order: