AGENTICSTAR Platform SDK - Enterprise AI Agent Infrastructure
Project description
AGENTICSTAR Platform SDK
Enterprise AI Agent Infrastructure SDK for building autonomous agent systems.
Installation
# Core (minimal)
pip install agenticstar-platform
# With specific modules
pip install agenticstar-platform[db] # PostgreSQL
pip install agenticstar-platform[rag] # Qdrant + Embedding
pip install agenticstar-platform[storage] # Azure Blob, S3, GCS
pip install agenticstar-platform[storage-azure] # Azure Blob only
pip install agenticstar-platform[semantic] # Semantic memory (Mem0)
pip install agenticstar-platform[episodic] # Episodic memory (Graphiti/FalkorDB)
pip install agenticstar-platform[security] # PII detection
pip install agenticstar-platform[all] # All modules
Quick Start
from agenticstar_platform import (
# Database
PostgreSQLManager, ApiPostgreSQLManager, PostgreSQLConfig, DataAccess,
# RAG (Vector DB + Embedding)
QdrantManager, QdrantConfig, EmbeddingGenerator, EmbeddingConfig,
# Storage
AzureBlobStorageClient, AzureBlobConfig,
# Events
EventEmitter, EventType,
# Auth
AgenticStarAuthClient, AgenticStarAuthConfig,
# Memory
SemanticMemoryClient, SemanticMemoryConfig,
)
# Optional: Episodic memory (requires agenticstar-platform[episodic])
from agenticstar_platform.memory import EpisodicMemoryClient, EpisodicMemoryConfig
# Example: Initialize SDK components
async def main():
# Database (direct connection)
db_config = PostgreSQLConfig.from_toml("config.toml", section="database")
manager = PostgreSQLManager(db_config)
da = DataAccess(manager)
await da.initialize()
users = await da.fetch_all("SELECT * FROM users WHERE active = $1", (True,))
# Database (HTTP API)
db_config = PostgreSQLConfig(api_url="https://your-api.example.com/db")
manager = ApiPostgreSQLManager(db_config, token_provider=lambda: "your-token")
da = DataAccess(manager)
users = await da.fetch_all("SELECT * FROM users WHERE active = $1", (True,))
# RAG System
embedding_config = EmbeddingConfig.from_toml("config.toml", section="rag.embedding")
embedding_gen = EmbeddingGenerator(embedding_config)
qdrant_config = QdrantConfig.from_toml("config.toml", section="rag.qdrant")
async with QdrantManager(qdrant_config, embedding_gen) as qdrant:
results = await qdrant.search("How to use the SDK?", limit=5)
# Storage (uses from_dict, not from_toml)
storage_config = AzureBlobConfig.from_dict({
"bucket_name": "your-container",
"connection_string": "your-connection-string",
})
storage = AzureBlobStorageClient(storage_config)
Modules
| Module | Extra | Description |
|---|---|---|
| db | [db] |
PostgreSQL data access layer with Azure AD support |
| rag | [rag] |
Qdrant vector database and Azure OpenAI embedding integration |
| storage | [storage] / [storage-azure] / [storage-aws] / [storage-gcp] |
Multi-cloud storage (Azure Blob, S3, GCS) |
| auth | (core) | AgenticStar Auth API client (authentication, user management, MCP tokens) |
| memory | [semantic] / [episodic] |
Semantic (Mem0) and episodic (Graphiti/FalkorDB) memory |
| security | [security] |
PII detection (Azure Presidio, AWS Comprehend, GCP DLP) |
| events | (core) | Event type definitions for streaming |
| common | (core) | Shared utilities (secret masking, validation) |
Auth Module
from agenticstar_platform.auth import AgenticStarAuthClient, AgenticStarAuthConfig
# From config.toml [auth.agenticstar] section
config = AgenticStarAuthConfig.from_config("config.toml")
client = AgenticStarAuthClient(config)
# Get user info
user = await client.get_user(user_id="user-001")
# Get MCP tokens
tokens = await client.get_mcp_tokens(user_id="user-001")
Memory Module
Semantic Memory (requires pip install agenticstar-platform[semantic]):
from agenticstar_platform.memory import SemanticMemoryClient, SemanticMemoryConfig
config = SemanticMemoryConfig.from_toml("config.toml")
memory = SemanticMemoryClient(config)
# Add memory
await memory.add("User prefers dark mode", user_id="user-001")
# Search memory
results = await memory.search("user preferences", user_id="user-001")
Episodic Memory (requires pip install agenticstar-platform[episodic]):
from agenticstar_platform.memory import EpisodicMemoryClient, EpisodicMemoryConfig
config = EpisodicMemoryConfig.from_toml("config.toml")
memory = EpisodicMemoryClient(config)
# Add episode
await memory.add_episode(
name="task_completed",
episode_body="User completed the deployment task",
group_id="project-alpha",
)
# Search episodes
results = await memory.search("deployment", group_id="project-alpha")
Storage Module
Note: AzureBlobConfig uses from_dict() (not from_toml()):
from agenticstar_platform.storage import AzureBlobStorageClient, AzureBlobConfig
config = AzureBlobConfig.from_dict({
"bucket_name": "your-container",
"connection_string": "DefaultEndpointsProtocol=https;...",
"prefix": "uploads/",
})
client = AzureBlobStorageClient(config)
result = await client.upload_file("local/file.pdf", prefix="docs/")
Platform Class Example
Below is an example of a Platform class that wraps SDK components for your agent system:
"""
Platform class example - Using AGENTICSTAR Platform SDK
"""
import asyncio
from dataclasses import dataclass
from typing import Optional
from agenticstar_platform import (
PostgreSQLManager, PostgreSQLConfig, DataAccess,
QdrantManager, QdrantConfig,
EmbeddingGenerator, EmbeddingConfig,
EventEmitter, EventType,
SemanticMemoryClient, SemanticMemoryConfig,
AzureBlobStorageClient, AzureBlobConfig,
AgenticStarAuthClient, AgenticStarAuthConfig,
)
@dataclass
class PlatformConfig:
"""Platform configuration"""
db_config: PostgreSQLConfig
qdrant_config: QdrantConfig
embedding_config: EmbeddingConfig
storage_config: Optional[AzureBlobConfig] = None
memory_config: Optional[SemanticMemoryConfig] = None
auth_config: Optional[AgenticStarAuthConfig] = None
@classmethod
def from_toml(cls, path: str) -> "PlatformConfig":
"""Load all configurations from TOML file"""
return cls(
db_config=PostgreSQLConfig.from_toml(path, section="database"),
qdrant_config=QdrantConfig.from_toml(path, section="rag.qdrant"),
embedding_config=EmbeddingConfig.from_toml(path, section="rag.embedding"),
storage_config=AzureBlobConfig.from_dict({
# Load from environment or config
"bucket_name": "your-container",
"connection_string": "your-connection-string",
}),
auth_config=AgenticStarAuthConfig.from_config(path),
)
class AgentPlatform:
"""
Platform class wrapping SDK components.
Example:
>>> config = PlatformConfig.from_toml("config.toml")
>>> platform = AgentPlatform(config)
>>> await platform.initialize()
>>>
>>> # Use database
>>> users = await platform.db.fetch_all("SELECT * FROM users")
>>>
>>> # Use RAG
>>> results = await platform.search_knowledge("How to deploy?")
>>>
>>> # Clean up
>>> await platform.cleanup()
"""
def __init__(self, config: PlatformConfig):
self.config = config
self._db: Optional[DataAccess] = None
self._qdrant: Optional[QdrantManager] = None
self._embedding: Optional[EmbeddingGenerator] = None
self._storage: Optional[AzureBlobStorageClient] = None
self._memory: Optional[SemanticMemoryClient] = None
self._auth: Optional[AgenticStarAuthClient] = None
async def initialize(self) -> None:
"""Initialize all SDK components"""
# Database
db_manager = PostgreSQLManager(self.config.db_config)
self._db = DataAccess(db_manager)
await self._db.initialize()
# Embedding generator
self._embedding = EmbeddingGenerator(self.config.embedding_config)
# Vector DB (RAG)
self._qdrant = QdrantManager(self.config.qdrant_config, self._embedding)
await self._qdrant.initialize()
# Storage (optional)
if self.config.storage_config:
self._storage = AzureBlobStorageClient(self.config.storage_config)
# Memory (optional)
if self.config.memory_config:
self._memory = SemanticMemoryClient(self.config.memory_config)
# Auth (optional)
if self.config.auth_config:
self._auth = AgenticStarAuthClient(self.config.auth_config)
@property
def db(self) -> DataAccess:
if not self._db:
raise RuntimeError("Platform not initialized. Call initialize() first.")
return self._db
@property
def qdrant(self) -> QdrantManager:
if not self._qdrant:
raise RuntimeError("Platform not initialized. Call initialize() first.")
return self._qdrant
@property
def storage(self) -> Optional[AzureBlobStorageClient]:
return self._storage
@property
def memory(self) -> Optional[SemanticMemoryClient]:
return self._memory
@property
def auth(self) -> Optional[AgenticStarAuthClient]:
return self._auth
async def search_knowledge(self, query: str, limit: int = 10):
return await self.qdrant.search(query, limit=limit)
async def cleanup(self) -> None:
"""Clean up all resources"""
if self._qdrant:
await self._qdrant.close()
if self._db:
await self._db.close()
if self._storage:
await self._storage.close()
if self._memory:
await self._memory.cleanup()
Configuration (config.toml example)
[database]
host = "your-postgresql.postgres.database.azure.com"
port = 5432
database = "agenticai"
username = "admin"
password = "your-password"
use_azure_ad = false
pool_min_size = 2
pool_max_size = 10
# api_url = "https://your-api.example.com/db" # Set for HTTP API mode
[database.azure_ad]
tenant_id = "your-tenant-id"
client_id = "your-client-id"
client_secret = "your-client-secret"
[auth.agenticstar]
base_url = "https://auth.agenticstar.tm.softbank.jp"
api_key = ""
timeout = 30.0
max_retries = 3
[rag.embedding]
api_base = "https://your-openai.openai.azure.com/"
api_key = "your-api-key"
deployment_name = "text-embedding-ada-002"
[rag.qdrant]
url = "http://localhost:6333"
collection_name = "knowledge_base"
vector_size = 1536
[storage.azure]
bucket_name = "your-container"
connection_string = "DefaultEndpointsProtocol=https;..."
prefix = "uploads/"
[memory.llm]
model = "azure/gpt-4"
api_key = "your-api-key"
base_url = "https://your-openai.openai.azure.com/"
api_version = "2024-02-15-preview"
[memory.embedder]
model = "azure/text-embedding-ada-002"
api_key = "your-api-key"
base_url = "https://your-openai.openai.azure.com/"
api_version = "2024-02-15-preview"
[memory.graphiti]
enabled = true
host = "falkordb.falkordb.svc.cluster.local"
port = 6379
database = "graphiti"
API Reference
See API_REFERENCE.md for detailed API documentation.
Changelog
0.5.0 (2026-03-25)
Breaking Changes:
- DB:
DataAccessnow takes a manager instance instead of(config, use_proxy, token_provider). Callers createPostgreSQLManagerorApiPostgreSQLManagerand pass it directly. - DB:
use_proxyparameter removed fromDataAccess,create_postgresql_manager(). - DB:
api_proxy_urlrenamed toapi_urlinPostgreSQLConfig. - DB:
ApiPostgreSQLManagerexported as public API for HTTP API access.
Improvements:
- DB:
is_initialized()method added to bothPostgreSQLManagerandApiPostgreSQLManager. - Qdrant:
prefer_grpc/check_compatibilityare now explicitQdrantConfigfields (no longer hardcoded based onauth_token_provider). - Error messages no longer reference use-case specific terms (CLI/Desktop mode).
0.4.0 (2026-03-21)
- Security: Prompt Shield documents trimming -
check_prompt_shield()now trims each document to 10,000 characters to comply with Azure API limits. Previously, WebFetch results exceeding 10,000 characters were blocked even without violations. - Security: PII detection language support -
detect_pii()now accepts alanguageparameter (default:"ja") for accurate multi-language PII detection. Previously hardcoded to Japanese. - Security: Protocol/ABC updated -
SecurityClientProtocolandSecurityClientBaseupdated withlanguageparameter indetect_pii().
0.3.2
- Storage module: Multi-cloud support (Azure Blob, S3, GCS)
- Auth module: AgenticStar Auth API client
- Memory module: Semantic (Mem0) and Episodic (Graphiti) memory
Version
0.5.0
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 agenticstar_platform-0.5.1.tar.gz.
File metadata
- Download URL: agenticstar_platform-0.5.1.tar.gz
- Upload date:
- Size: 628.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8179153a26a7d036b6786b6bcb9b5c8f0d9d90c9dda0a3ea3fb6fbef31390eb6
|
|
| MD5 |
e7575721b29d56b715071323b99f88b2
|
|
| BLAKE2b-256 |
dc02abbad4fa884259c296a48cbe7801f8e07e331f1036db8e6cb945b647d4cd
|
File details
Details for the file agenticstar_platform-0.5.1-py3-none-any.whl.
File metadata
- Download URL: agenticstar_platform-0.5.1-py3-none-any.whl
- Upload date:
- Size: 136.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d9e1603f3f2ae4fa64fc2c96675428ad9b751ef53096f962121ac8a1a018314
|
|
| MD5 |
8f217a224e5aec979c179297b01a2752
|
|
| BLAKE2b-256 |
b3ed5af96b14eb83eb953ae8e420a6b4bfed9faae9ec2664b4b677d53ed20c8d
|