Skip to main content

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 name
  • model_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 name
  • agent_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 name
  • message 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 name
  • description str: Environment description
  • model_name Optional[str]: Model to use
  • category 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 name
  • agent_types Dict[str, str]: Updated agent types
  • portrait 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 name
  • actions Dict[str, Any]: Updated actions
  • events 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 name
  • actions Dict[str, Any]: Updated action code
  • events 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 name
  • agent_schemas Dict[str, Any]: Agent schemas to save

Response: ProfileSchemaResponse

POST /pipeline/generate_profiles

Description: Generate agent profile data.

Parameters:

  • env_name str: Environment name
  • agent_types Dict[str, int]: Agent type counts
  • model_name Optional[str]: Model to use
  • category 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 prompt
  • model_name Optional[str]: Model to use
  • category Optional[str]: Model category

Response: ODDResponse

POST /odd/chat

Description: Process messages in the ODD conversation.

Parameters:

  • session_id str: Session identifier
  • message str: User message

Response: ODDResponse

POST /odd/confirm_scene

Description: Confirm scene creation with the provided scene name.

Parameters:

  • session_id str: Session identifier
  • scene_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 name
  • updated_data List[Dict[str, Any]]:* Updated decision data

Response: FeedbackResponse

POST /feedback/rate

Description: Rate decision data quality.

Parameters:

  • env_name str:* Environment name
  • selected_data List[Dict[str, Any]]:* Data to rate
  • model_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 name
  • selected_data List[Dict[str, Any]]:* Data to refine
  • model_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 name
  • config 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 name
  • agent_id str:* Agent identifier
  • message 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 name
  • agent_id str:* Agent identifier
  • profile_data Dict[str, Any]:* Profile fields to update

Response: UpdateAgentProfileResponse

Documentation for YuLan-OneSim - A Next Generation Social Simulator with LLMs