This document provides comprehensive documentation for all AInception modules, classes, and functions. Use this as your guide for integrating with and extending the AInception framework.
- Core Agent
- Drive System
- Constitution
- Social Promises
- Planning & Imagination
- Visualization
- World Environments
- ML Components
- Database
- CLI Interface
The central orchestrator that coordinates all agent subsystems.
from agent.core import Agent
# Initialize agent
agent = Agent(
enable_journal_llm=False, # Optional LLM integration
config_dir="config/", # Configuration directory
db_path="agent_state.db" # Database path
)Execute one agent decision step.
Parameters:
observation: Environment state dict containing:agent_pos: Tuple[int, int] - Agent position (x, y)goal: Tuple[int, int] - Target position (optional)energy: float - Current energy level [0,1]temperature: float - Current temperature [0,1]social_proximity: float - Social drive state [0,1]danger_tiles: Set[Tuple[int, int]] - Dangerous positionsforbidden_tiles: Set[Tuple[int, int]] - Forbidden positions
Returns: Dictionary with:
action: Dict - Action to executejustification: str - Reasoning for the decisionlogs: Dict - Additional logging information
Example:
observation = {
"agent_pos": (2, 3),
"goal": (7, 7),
"energy": 0.6,
"temperature": 0.5,
"social_proximity": 0.3
}
result = agent.step(observation)
print(f"Action: {result['action']}")
print(f"Reasoning: {result['justification']}")Register a social promise to avoid certain tiles.
Returns: Promise ID string
Get current state of all homeostatic drives.
Set agent's goal position.
Manages homeostatic needs with quadratic cost functions.
from agent.drives import DriveSystem, build_from_config
# Build from YAML config
drive_system = build_from_config("config/drives.yaml")
# Manual construction
drive_system = DriveSystem()
drive_system.add_drive("energy", setpoint=0.7, weight=1.0, current=0.6)Update drive values from environment observations.
Calculate total quadratic cost across all drives.
Get reward signal (negative cost).
Estimate cost change from hypothetical drive modifications.
Individual drive representation.
Attributes:
name: str - Drive identifiersetpoint: float - Optimal valueweight: float - Importance weightcurrent: float - Current valuemin_val: float - Minimum allowed value (default: 0.0)max_val: float - Maximum allowed value (default: 1.0)decay_rate: float - Passive decay per tick (default: 0.0)
Manages ethical principles with rankings and violation detection.
from agent.constitution import Constitution
constitution = Constitution()
constitution.load_from_file("config/principles.yaml")Check action against constitutional principles.
Returns:
violations: List[str] - Violated principle nameschecked: List[str] - Principles that were evaluated
Get top N highest-priority principles.
Re-rank principles with justification proof.
Proof format:
proof = {
"reason": "Explanation for re-ranking",
"tradeoffs": ["list of compromises made"],
"timestamp": int(time.time()),
"evidence": "Supporting evidence",
"affected_principles": ["principle1", "principle2"]
}Tracks and enforces social commitments.
from agent.social import PromiseBook
promise_book = PromiseBook()Register a new promise.
Returns: Unique promise ID
Check if an action would violate any promises.
Get all currently active promises.
A*-based pathfinding with ML augmentation.
from agent.policy.planner import Planner, PlannerConfig
config = PlannerConfig(
max_depth=50,
cost_weights={
"step": 1.0,
"drive": 2.0,
"risk": 5.0
}
)
planner = Planner(config)Generate plan from start to goal.
Returns:
path: List[Tuple[int, int]] - Planned positionsactions: List[Dict] - Action sequencecost: float - Total plan costjustification: str - Reasoning
Model predictive control for future state rollouts.
from agent.imagination import Imagination
imagination = Imagination(rollout_depth=5)Simulate future states for action candidates.
PyQt6-based visualization interface.
from viz.main import MainWindow
from PyQt6.QtWidgets import QApplication
app = QApplication([])
window = MainWindow()
window.show()
app.exec()Bridge between agent and visualization.
from viz.adapter import AInceptionAdapter
adapter = AInceptionAdapter(agent)
state = adapter.get_state()2D grid environment for agent navigation tasks.
from worlds.gridworld import GridWorld
world = GridWorld(
width=8,
height=8,
goal_pos=(7, 7),
danger_tiles={(3, 3), (4, 4)},
slip_chance=0.1
)Reset environment to initial state.
Execute action in environment.
Returns: (observation, reward, done, info)
Get current environment state.
2-DOF robotic arm environment.
from worlds.arm import ArmEnv
arm = ArmEnv(
joint_limits=[(-180, 180), (-90, 90)],
target_pos=(0.5, 0.3)
)Diffusion model for creative path planning.
from viz.diffusion_planner import SimpleTrajectoryDiffusion
diffusion = SimpleTrajectoryDiffusion(
grid_size=8,
max_length=20
)
# Generate trajectory
trajectory = diffusion.sample(
start=(0, 0),
goal=(7, 7),
num_samples=5
)Large language model integration for goal decomposition.
from viz.llm_module import LLMDecomposer
llm = LLMDecomposer(model_name="gpt2")
subgoals = llm.decompose_goal(
"Navigate to the target while avoiding danger",
context={"current_pos": (2, 3), "goal": (7, 7)}
)Reinforcement Learning from Human Feedback.
from viz.rlhf_module import RLHFTrainer
trainer = RLHFTrainer(
base_model_path="./models/base_policy",
learning_rate=3e-4
)
trainer.train_on_feedback(
trajectories=trajectories,
feedback_scores=scores
)SQLite-based persistence layer.
from database import DatabaseManager
db = DatabaseManager("agent_state.db")
db.initialize()Log agent decision to database.
Get performance summary for an agent.
Query decision history with filters.
# Train agent
python cli.py train --day 1 --episodes 5
# Run tests
python cli.py test --day 1 --with-promises
python cli.py test --day 2 --perturbations
# Generate reports
python cli.py report --output results.json
# Interactive demo
python cli.py demo --world gridworld --interactiveProgrammatic test execution.
from cli import TestRunner
runner = TestRunner()
results = runner.run_day_1_tests(episodes=5)drives:
energy:
setpoint: 0.7
weight: 1.0
initial: 0.65
decay_rate: 0.01
temperature:
setpoint: 0.5
weight: 0.8
initial: 0.55principles:
- name: "do_not_harm"
initial_rank: 1
description: "Never cause harm to self or others"
- name: "keep_promises"
initial_rank: 2
description: "Honor all registered commitments"DriveError: Issues with drive systemConstitutionViolation: Principle violationsPromiseConflict: Promise violationsPlanningError: Planning failures
try:
result = agent.step(observation)
except ConstitutionViolation as e:
print(f"Action violates principle: {e.principle_name}")
# Handle violation
except PlanningError as e:
print(f"Planning failed: {e.message}")
# Use fallback behavior- Agent Steps: Target <100ms per decision
- Visualization: Maintain 60+ FPS
- ML Inference: <2s for LLM responses
- Memory: Reasonable usage for consumer hardware
import cProfile
# Profile agent step
cProfile.run('agent.step(observation)')from agent.drives import Drive
class CustomDrive(Drive):
def update_custom_logic(self, observation):
# Custom update logic
passfrom worlds.base import BaseWorld
class MyWorld(BaseWorld):
def step(self, action):
# Custom environment logic
passfrom viz.base import MLModule
class MyMLModule(MLModule):
def process(self, input_data):
# Custom ML processing
pass- Follow PEP 8 guidelines
- Use type hints consistently
- Add comprehensive docstrings
- Write unit tests for all components
- Profile critical paths
- Use appropriate data structures
- Leverage GPU when available
- Implement graceful CPU fallbacks
- Test both success and failure cases
- Mock external dependencies
- Use reproducible random seeds
- Validate against known scenarios
For more examples and advanced usage patterns, see the tutorials directory and examine the test cases in the tests/ directory.