SDK for building agents that run within Sage Sanctum infrastructure
Project description
Sage Sanctum Agent SDK
SDK for building agents that run within the Sage Sanctum secure multi-agent execution platform.
Features
- SPIFFE Authentication - Automatic JWT SVID management for agent identity
- Transaction Tokens (TraT) - IETF-standard authorization for scoped transactions
- LLM Gateway Integration - Route LLM calls through authenticated, policy-enforced gateways
- Multi-Provider Support - OpenAI, Anthropic, and Google via unified interface
- SARIF Output - Standard static analysis output format for GitHub Code Scanning
- Testing Utilities - Mock gateway, LLM, and TraT clients for unit testing
Quick Start
from sage_sanctum import AgentContext, AgentRunner, SageSanctumAgent, AgentResult
from sage_sanctum.io.inputs import AgentInput, RepositoryInput
from sage_sanctum.io.outputs import SarifOutput, Finding, Location
from sage_sanctum.llm.model_category import ModelCategory
class MySecurityAgent(SageSanctumAgent):
@property
def name(self) -> str:
return "my-security-agent"
@property
def version(self) -> str:
return "0.1.0"
async def run(self, agent_input: AgentInput) -> AgentResult:
# Get an LLM client for analysis
llm = self.context.create_llm_client(ModelCategory.ANALYSIS)
# Your agent logic here...
response = llm.invoke([...])
return AgentResult(
output=SarifOutput(
tool_name=self.name,
tool_version=self.version,
findings=[...],
),
exit_code=0,
)
# Entry point
if __name__ == "__main__":
import sys
sys.exit(AgentRunner(MySecurityAgent).run())
Installation
pip install sage-sanctum-sdk
Architecture
Agents run in isolated containers with no direct network access. All external communication (LLM calls, MCP tools, packages) flows through authenticated gateways:
Agent Pod (seccomp: no AF_INET)
└── Agent SDK
├── SPIFFE JWT (identity)
├── Transaction Token (authorization)
└── Gateway Client (Unix socket)
└── LLM Gateway → OpenAI / Anthropic / Google
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sage_sanctum_sdk-0.2.5.tar.gz.
File metadata
- Download URL: sage_sanctum_sdk-0.2.5.tar.gz
- Upload date:
- Size: 49.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef21c48e51f5b0f6657a56963e31aa494902d75599a5378c8d0f95abf906431b
|
|
| MD5 |
253646d830f55ffe8abbaafb12ef2e95
|
|
| BLAKE2b-256 |
cfbc61e7c4edd4a30f832eba0231f8005382a3ae5b9e944cd87abf1fb06751ff
|
File details
Details for the file sage_sanctum_sdk-0.2.5-py3-none-any.whl.
File metadata
- Download URL: sage_sanctum_sdk-0.2.5-py3-none-any.whl
- Upload date:
- Size: 36.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a03d6a951db779cbc1c768985f0c717931442ed09359e3cd1c83662667afc3f3
|
|
| MD5 |
e806ad075c2255862339cb4fdc21125f
|
|
| BLAKE2b-256 |
6de94eeb1a1b0a28d4970f9e883863b90efca888749672f0bad1f86a0b2eda97
|