REST API
Simulation
Handles simulation environment initialization, control, and management.
POST /simulation/initialize
Description: Initialize simulation environment and related components.
Parameters:
env_name
str: Environment namemodel_name
Optional[str]: Optional model name (defaults to config)
Response:
{
"env_name": "string",
"config_applied": true,
"agents": [...],
"agent_count": 0,
"is_distributed": false,
"trail_id": "string",
"components_initialized": {},
"workflow": {},
"ready_for_simulation": true
}
POST /simulation/get_agents
Description: Get agent information for an environment.
Parameters:
env_name
str: Environment nameagent_type
Optional[str]: Filter by agent type
Response: GetAgentsResponse
POST /simulation/start
Description: Start a simulation.
Parameters:
env_name
str: Environment name to start
Response: StartSimulationResponse
POST /simulation/stop
Description: Stop a running simulation.
Parameters:
env_name
str: Environment name to stop
Response: StopSimulationResponse
POST /simulation/pause
Description: Pause a running simulation.
Parameters:
env_name
str: Environment name to pause
Response: PauseSimulationResponse
POST /simulation/resume
Description: Resume a paused simulation.
Parameters:
env_name
str: Environment name to resume
Response: ResumeSimulationResponse
POST /simulation/broadcast
Description: Broadcast a message to all agents in the environment.
Parameters:
env_name
str: Environment namemessage
str: Message to broadcast
Response:
{
"success": true,
"message": "string",
"broadcast_count": 0
}
GET /simulation/{env_name}/available_metrics
Description: Get available metrics for an environment.
Response:
{
"agent_metrics": ["activity_level", "social_connections", "resource_usage"],
"env_metrics": ["population", "resource_level", "social_stability"]
}
GET /simulation/{env_name}/events
Description: Get simulation events.
Response: GetEventsResponse
GET /simulation/list_environments
Description: List all initialized environments.
Response:
{
"success": true,
"environments": ["env1", "env2"]
}
GET /simulation/registry/{env_name}
Description: Get simulation registry information.
Response:
{
"success": true,
"message": "string",
"registry": {}
}
WebSocket /simulation/ws/{env_name}
WebSocket endpoint for real-time simulation updates.
Pipeline
Manages the pipeline for creating simulation scenarios including agent types, workflows, and code generation.
POST /pipeline/initialize
Description: Initialize the pipeline for a new environment.
Parameters:
env_name
str: Environment namedescription
str: Environment descriptionmodel_name
Optional[str]: Model to usecategory
Optional[str]: Model category
Response:
{
"env_name": "string",
"env_path": "string",
"message": "Pipeline initialization successful"
}
POST /pipeline/generate_agent_types
Description: Generate agent types based on the environment description.
Parameters:
env_name
str: Environment name
Response: AgentTypesResponse
POST /pipeline/update_agent_types
Description: Update agent types with user modifications.
Parameters:
env_name
str: Environment nameagent_types
Dict[str, str]: Updated agent typesportrait
Optional[Dict[str, int]]: Agent portrait assignments
Response: AgentTypesResponse
POST /pipeline/generate_workflow
Description: Generate workflow (actions and events) for the environment.
Parameters:
env_name
str: Environment name
Response: WorkflowResponse
POST /pipeline/update_workflow
Description: Update workflow with user modifications.
Parameters:
env_name
str: Environment nameactions
Dict[str, Any]: Updated actionsevents
Dict[str, Any]: Updated events
Response:
{
"message": "Workflow successfully updated"
}
POST /pipeline/generate_code
Description: Start code generation process.
Parameters:
env_name
str: Environment name
Response:
{
"message": "Code generation started",
"env_name": "string"
}
GET /pipeline/code_generation_status
Description: Get current status of code generation.
Parameters:
env_name
str: Environment name
Response: CodeGenerationStatus
GET /pipeline/get_code
Description: Get generated code including mapping between actions/events and their code.
Parameters:
env_name
str: Environment name
Response:
{
"actions": {},
"events": {}
}
POST /pipeline/update_code
Description: Update generated code.
Parameters:
env_name
str: Environment nameactions
Dict[str, Any]: Updated action codeevents
Dict[str, Any]: Updated event code
Response:
{
"message": "Code updated successfully",
"updated_agents": "string",
"events_updated": "Yes/No"
}
GET /pipeline/profile_schemas
Description: Get agent profile schemas.
Parameters:
env_name
str: Environment name
Response:
{
"schemas": {},
"profile_counts": {}
}
POST /pipeline/profile_schema
Description: Save agent profile schema.
Parameters:
env_name
str: Environment nameagent_schemas
Dict[str, Any]: Agent schemas to save
Response: ProfileSchemaResponse
POST /pipeline/generate_profiles
Description: Generate agent profile data.
Parameters:
env_name
str: Environment nameagent_types
Dict[str, int]: Agent type countsmodel_name
Optional[str]: Model to usecategory
Optional[str]: Model category
Response: ProfileGenerationResponse
GET /pipeline/tips
Description: Get helpful tips about the simulation system.
Response: TipsResponse
ODD
Handles ODD (Overview, Design concepts, Details) protocol generation and dialogue.
POST /odd/start
Description: Start a new ODD conversation with an initial prompt.
Parameters:
prompt
str: Initial user promptmodel_name
Optional[str]: Model to usecategory
Optional[str]: Model category
Response: ODDResponse
POST /odd/chat
Description: Process messages in the ODD conversation.
Parameters:
session_id
str: Session identifiermessage
str: User message
Response: ODDResponse
POST /odd/confirm_scene
Description: Confirm scene creation with the provided scene name.
Parameters:
session_id
str: Session identifierscene_name
str: Scene name to create
Response: SceneConfirmationResponse
GET /odd/history/{session_id}
Description: Get the conversation history for an ODD session.
Parameters:
env_name
Optional[str]: Environment name
Response: HistoryResponse
GET /odd/protocol/{session_id}
Description: Get the ODD protocol.
Parameters:
env_name
Optional[str]:* Environment name
Response: ProtocolResponse
POST /odd/check_scene_name
Description: Check if a scene name already exists.
Parameters:
scene_name
str:* Scene name to check
Response: SceneNameCheckResponse
GET /odd/domains
Description: Get list of all domains.
Response: List[str]
GET /odd/examples
Description: Get example descriptions for social simulation scenarios.
Response: List[str]
Monitor
Provides real-time monitoring of simulation metrics and performance.
GET /monitor/{env_name}/metrics
Description: Get all available metrics for an environment.
Response:
{
"success": true,
"metrics": {}
}
GET /monitor/{env_name}/metrics/{metric_name}
Description: Get a specific metric for an environment.
Response:
{
"success": true,
"metric": {}
}
POST /monitor/{env_name}/metrics/{metric_name}/update
Description: Manually trigger an update for a specific metric.
Response:
{
"success": true,
"message": "Metric updated successfully"
}
WebSocket /monitor/ws/{env_name}
WebSocket endpoint for real-time metric updates.
Feedback
Manages decision data feedback, rating, and refinement for simulation improvement.
GET /feedback/decisions
Description: Get decision data from the environment.
Parameters:
env_name
str:* Environment name
Response: FeedbackResponse
POST /feedback/update
Description: Update decision data.
Parameters:
env_name
str:* Environment nameupdated_data
List[Dict[str, Any]]:* Updated decision data
Response: FeedbackResponse
POST /feedback/rate
Description: Rate decision data quality.
Parameters:
env_name
str:* Environment nameselected_data
List[Dict[str, Any]]:* Data to ratemodel_name
str:* Model to use for rating
Response: FeedbackResponse
POST /feedback/refine
Description: Refine decision data based on quality analysis.
Parameters:
env_name
str:* Environment nameselected_data
List[Dict[str, Any]]:* Data to refinemodel_name
str:* Model to use for refinement
Response: FeedbackResponse
POST /feedback/save
Description: Save decision data to file.
Parameters:
env_name
str:* Environment name
Response: SaveResponse
Domains
Provides access to available domains and existing scenes.
GET /domains
Description: Get all available domains.
Response: List[str]
GET /scenes
Description: Get scenes grouped by domain.
Response:
{
"Economics": [...],
"Sociology": [...],
...
}
GET /scenes/{domain}
Description: Get scenes for a specific domain.
Response: List[Dict[str, str]]
GET /scene/{scene_name}
Description: Get detailed information for a specific scene.
Response:
{
"scene_name": "string",
"description": "string",
"odd_protocol": {},
"actions": {},
"events": {},
...
}
POST /check_scene_name
Description: Check if a scene name already exists.
Parameters:
scene_name
str:* Scene name to check
Response: SceneNameCheckResponse
Config
Manages system configuration, model settings, and environment options.
GET /config/options
Description: Get configuration options for a scene.
Parameters:
env_name
str:* Environment name
Response: ConfigOptions
POST /config/save
Description: Save configuration for a scene.
Parameters:
env_name
str:* Environment nameconfig
Dict[str, Any]:* Configuration to save
Response: SaveConfigResponse
GET /config/get
Description: Get configuration for a specific environment.
Parameters:
env_name
str:* Environment name
Response: Dict[str, Any]
GET /config/models
Description: Get available models by category.
Parameters:
category
Optional[str]:* Filter by category ('chat' or 'embedding')
Response:
{
"models": {
"chat": [...],
"embedding": [...]
}
}
Agent
Handles direct interaction with agents including chat and profile updates.
POST /agent/chat
Description: Chat with a specific agent.
Parameters:
env_name
str:* Environment nameagent_id
str:* Agent identifiermessage
str:* Message to send
Response: AgentChatResponse
GET /agent/history/{env_name}/{agent_id}
Description: Get chat history with a specific agent.
Response: AgentChatHistoryResponse
POST /agent/update_profile
Description: Update an agent's profile data.
Parameters:
env_name
str:* Environment nameagent_id
str:* Agent identifierprofile_data
Dict[str, Any]:* Profile fields to update
Response: UpdateAgentProfileResponse
Documentation for YuLan-OneSim - A Next Generation Social Simulator with LLMs