Knowledge Management
Sypho provides structured data storage for agents.
Storage Type
Structured Data
JSON document storage with:
- Namespaces - Logical grouping
- Keys - Unique identifiers
- Data - JSON documents
- Metadata - Queryable attributes
- Versioning - Full history tracking
Knowledge Scope
Every run has a knowledge scope that defines data access:
{
"structured_data_namespaces": {
"app-data": {
"keys": ["*"], // All keys
"permission": "read_write" // Full access
},
"shared-config": {
"keys": ["public:*"], // Only public:* keys
"permission": "read" // Read-only
}
}
}
Permissions
read- Get, query, list operationsread_write- All operations (save, delete)
Platform Tools
Access via context.call_tool():
| Tool | Description |
|---|---|
structured_data_save | Create/update entry |
structured_data_get | Fetch by key |
structured_data_query | Search by metadata |
structured_data_delete | Remove entry |
structured_data_list_keys | List keys in namespace |
Usage Example
from sypho_sdk import entrypoint, AgentContext
@entrypoint
async def main(input: dict, context: AgentContext):
# Save data
await context.call_tool("structured_data_save", {
"namespace": "users",
"key": "user:123",
"data": {"name": "Alice", "age": 30},
"metadata": {"type": "user", "region": "us"}
})
# Query by metadata
results = await context.call_tool("structured_data_query", {
"namespace": "users",
"filters": {
"metadata.type": "user",
"metadata.region": "us"
}
})
return results
Namespaces
Namespaces provide logical isolation:
- Per-agent:
my-agent-data - Shared:
shared-config - User-specific:
user-{user_id}-data