agentsociety.cityagent.blocks.mobility_block

Module Contents

Classes

PlaceSelectionBlock

Block for selecting destinations based on user intention.

MoveBlock

Block for executing mobility operations (home/work/other)

MobilityNoneBlock

MobilityNoneBlock

MobilityBlockParams

MobilityBlockContext

MobilityBlock

Main mobility coordination block.

Functions

gravity_model

Calculate selection probabilities for POIs using a gravity model.

Data

API

agentsociety.cityagent.blocks.mobility_block.PLACE_TYPE_SELECTION_PROMPT = <Multiline-String>
agentsociety.cityagent.blocks.mobility_block.PLACE_SECOND_TYPE_SELECTION_PROMPT = <Multiline-String>
agentsociety.cityagent.blocks.mobility_block.PLACE_ANALYSIS_PROMPT = <Multiline-String>
agentsociety.cityagent.blocks.mobility_block.RADIUS_PROMPT = <Multiline-String>
agentsociety.cityagent.blocks.mobility_block.gravity_model(pois)

Calculate selection probabilities for POIs using a gravity model.

The model considers both distance decay (prefer closer locations) and spatial density (avoid overcrowded areas). Distances are grouped into 1km bins up to 10km, with POIs beyond 10km in a ‘more’ category.

Args: pois: List of POI tuples containing (poi_data, distance)

Returns: List of tuples: (name, id, normalized_weight, distance) with selection probabilities based on gravity model

class agentsociety.cityagent.blocks.mobility_block.PlaceSelectionBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory, search_limit: int = 50)

Bases: agentsociety.agent.Block

Block for selecting destinations based on user intention.

Implements a two-stage selection process:

  1. Select primary POI category (e.g., ‘shopping’)

  2. Select sub-category (e.g., ‘bookstore’) Uses LLM for decision making with fallback to random selection.

Configurable Fields: search_limit: Max number of POIs to retrieve from map service

Initialization

name

‘PlaceSelectionBlock’

description

‘Selects destinations for unknown locations (excluding home/work)’

async forward(context: agentsociety.agent.DotDict)

Execute the destination selection workflow

class agentsociety.cityagent.blocks.mobility_block.MoveBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory)

Bases: agentsociety.agent.Block

Block for executing mobility operations (home/work/other)

Initialization

name

‘MoveBlock’

description

‘Executes mobility operations between locations’

async forward(context: agentsociety.agent.DotDict)
class agentsociety.cityagent.blocks.mobility_block.MobilityNoneBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory)

Bases: agentsociety.agent.Block

MobilityNoneBlock

Initialization

name

‘MobilityNoneBlock’

description

‘Handles other mobility operations’

async forward(context: agentsociety.agent.DotDict)

Log completion without action

class agentsociety.cityagent.blocks.mobility_block.MobilityBlockParams

Bases: agentsociety.agent.BlockParams

radius_prompt: str

‘Field(…)’

search_limit: int

‘Field(…)’

class agentsociety.cityagent.blocks.mobility_block.MobilityBlockContext

Bases: agentsociety.agent.BlockContext

next_place: Optional[tuple[str, int]]

‘Field(…)’

class agentsociety.cityagent.blocks.mobility_block.MobilityBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory, block_params: Optional[agentsociety.cityagent.blocks.mobility_block.MobilityBlockParams] = None)

Bases: agentsociety.agent.Block

Main mobility coordination block.

Initialization

ParamsType

None

OutputType

None

ContextType

None

name

‘MobilityBlock’

description

‘Used for moving like go to work, go to home, go to other places, etc.’

actions

None

async forward(agent_context: agentsociety.agent.DotDict) → agentsociety.cityagent.sharing_params.SocietyAgentBlockOutput

Main entry point - delegates to sub-blocks