Core API¶
SuperOpt¶
Main optimizer class.
class SuperOpt:
def __init__(self,
environment: AgenticEnvironment | None = None,
alpha: float = 1.0,
use_stability_checks: bool = True)
def step(self, trace: ExecutionTrace) -> None:
"""Perform optimization step"""
def optimize_episode(self,
task_description: str,
agent_executor: callable,
max_iterations: int = 10) -> dict:
"""Run complete optimization episode"""
def get_statistics(self) -> dict:
"""Get optimization statistics"""
AgenticEnvironment¶
Agent environment container.
@dataclass
class AgenticEnvironment:
prompts: PromptConfig
tools: dict[str, ToolSchema]
retrieval: RetrievalConfig
memory: list[MemoryEntry]
def apply_update(self, nlg, alpha: float = 1.0) -> AgenticEnvironment:
"""Apply updates to environment"""
def to_dict(self) -> dict:
"""Serialize to dictionary"""
@classmethod
def from_dict(cls, data: dict) -> AgenticEnvironment:
"""Deserialize from dictionary"""
PromptConfig¶
Prompt configuration.
@dataclass
class PromptConfig:
system_prompt: str = ""
instruction_policy: str = ""
few_shot_exemplars: list[str] = field(default_factory=list)
behavioral_constraints: list[str] = field(default_factory=list)
ToolSchema¶
Tool definition.
@dataclass
class ToolSchema:
name: str
description: str
arguments: dict[str, Any] = field(default_factory=dict)
required_fields: list[str] = field(default_factory=list)
constraints: list[str] = field(default_factory=list)
examples: list[dict[str, Any]] = field(default_factory=list)
RetrievalConfig¶
Retrieval settings.
@dataclass
class RetrievalConfig:
top_k: int = 5
chunk_size: int = 512
chunk_overlap: int = 50
rerank_threshold: float = 0.7
mode: str = "semantic"
query_rewrite_strategy: str = "default"
file_type_filters: list[str] = field(default_factory=list)
dependency_expansion_depth: int = 1
MemoryEntry¶
Memory item.
@dataclass
class MemoryEntry:
entry_type: str
content: str
confidence: float = 1.0
timestamp: datetime = field(default_factory=datetime.now)
helpful_count: int = 0
harmful_count: int = 0
def decay(self, lambda_decay: float, current_time: datetime) -> float:
"""Apply time-based decay"""
ExecutionTrace¶
Execution record.
@dataclass
class ExecutionTrace:
task_description: str
success: bool = False
response: str = ""
tool_calls: list[ToolCall] = field(default_factory=list)
tool_errors: list[ToolCall] = field(default_factory=list)
failure_type: FailureType = FailureType.NONE
metadata: dict[str, Any] = field(default_factory=dict)
ToolCall¶
Tool execution record.
@dataclass
class ToolCall:
tool_name: str
arguments: dict[str, Any] = field(default_factory=dict)
success: bool = False
error_message: str = ""
execution_time: float = 0.0
FailureType¶
Failure categories.
class FailureType(Enum):
PROMPT = "PROMPT"
TOOL = "TOOL"
RETRIEVAL = "RETRIEVAL"
MEMORY = "MEMORY"
NONE = "NONE"
Usage Example¶
from superopt import SuperOpt, AgenticEnvironment
from superopt.core.environment import PromptConfig, ToolSchema
# Create environment
env = AgenticEnvironment(
prompts=PromptConfig(system_prompt="You are a helpful assistant."),
tools={
"edit_file": ToolSchema(
name="edit_file",
description="Edit files",
arguments={"file": "str", "line": "int"}
)
}
)
# Create optimizer
optimizer = SuperOpt(environment=env)
# Optimize after failure
optimizer.step(execution_trace)