agentsociety.cityagent.blocks.economy_block

Module Contents

Classes

WorkBlock

Handles work-related economic activities and time tracking.

ConsumptionBlock

Manages consumption behavior and budget constraints.

EconomyNoneBlock

Fallback block for non-economic/non-specified activities.

EconomyBlockParams

EconomyBlockContext

EconomyBlock

Orchestrates economic activities through specialized sub-blocks.

MonthEconomyPlanBlock

Manages monthly economic planning and mental health assessment.

Functions

softmax

Compute softmax values with temperature scaling.

Data

API

agentsociety.cityagent.blocks.economy_block.WORKTIME_ESTIMATE_PROMPT = <Multiline-String>
agentsociety.cityagent.blocks.economy_block.softmax(x, gamma=1.0)

Compute softmax values with temperature scaling.

Args: x: Input values (array or list) gamma: Temperature parameter (higher values make distribution sharper)

Returns: Probability distribution over input values

class agentsociety.cityagent.blocks.economy_block.WorkBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory, worktime_estimation_prompt: str = WORKTIME_ESTIMATE_PROMPT)

Bases: agentsociety.agent.Block

Handles work-related economic activities and time tracking.

Attributes: guidance_prompt: Template for time estimation queries

Initialization

Initialize with dependencies.

Args: llm: Language model for time estimation environment: Time tracking environment memory: Agent’s memory system

name

‘WorkBlock’

description

‘Handles work-related economic activities and time tracking’

async forward(context: agentsociety.agent.DotDict)

Process work task and track time expenditure.

Workflow: 1. Format prompt with work context 2. Request time estimation from LLM 3. Record work experience in memory 4. Fallback to random time on parsing failures

Returns: Execution result with time consumption details

class agentsociety.cityagent.blocks.economy_block.ConsumptionBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory)

Bases: agentsociety.agent.Block

Manages consumption behavior and budget constraints.

Attributes: economy_client: Interface to economic simulation forward_times: Counter for execution attempts

Initialization

Initialize consumption processor.

Args: economy_client: Client for economic system interactions

name

‘ConsumptionBlock’

description

‘Used to determine the consumption amount, and items’

async forward(context: agentsociety.agent.DotDict)

Execute consumption decision-making.

Workflow: 1. Check monthly consumption limits 2. Calculate price-weighted demand distribution 3. Execute transactions through economy client 4. Record consumption in memory stream

Returns: Consumption evaluation with financial details

class agentsociety.cityagent.blocks.economy_block.EconomyNoneBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory)

Bases: agentsociety.agent.Block

Fallback block for non-economic/non-specified activities.

Initialization

name

‘EconomyNoneBlock’

description

‘Fallback block for other activities’

async forward(context: agentsociety.agent.DotDict)

Log generic activities in economy stream.

class agentsociety.cityagent.blocks.economy_block.EconomyBlockParams

Bases: agentsociety.agent.BlockParams

worktime_estimation_prompt: str

‘Field(…)’

UBI: float

‘Field(…)’

num_labor_hours: int

‘Field(…)’

productivity_per_labor: float

‘Field(…)’

time_diff: int

‘Field(…)’

class agentsociety.cityagent.blocks.economy_block.EconomyBlockContext

Bases: agentsociety.agent.BlockContext

class agentsociety.cityagent.blocks.economy_block.EconomyBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory, block_params: Optional[agentsociety.cityagent.blocks.economy_block.EconomyBlockParams] = None)

Bases: agentsociety.agent.Block

Orchestrates economic activities through specialized sub-blocks.

Attributes: dispatcher: Routes tasks to appropriate sub-blocks work_block: Work activity handler consumption_block: Consumption manager none_block: Fallback activities

Initialization

ParamsType

None

OutputType

None

ContextType

None

NeedAgent

True

name

‘EconomyBlock’

description

‘Work, shopping, consume, and other economic activities.’

actions

None

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

Coordinate economic activity execution.

Workflow: 1. Use dispatcher to select appropriate handler 2. Delegate execution to selected block

class agentsociety.cityagent.blocks.economy_block.MonthEconomyPlanBlock(toolbox: agentsociety.agent.AgentToolbox, agent_memory: agentsociety.memory.Memory, ubi: float = 0, num_labor_hours: int = 168, productivity_per_labor: float = 1, time_diff: int = 30 * 24 * 60 * 60)

Bases: agentsociety.agent.Block

Manages monthly economic planning and mental health assessment.

Attributes: configurable_fields: Economic policy parameters economy_client: Interface to economic system llm_error: Counter for LLM failures

Initialization

async month_trigger()

Check if monthly planning cycle should activate.

async forward()

Execute monthly planning workflow.

Workflow: 1. Collect economic indicators 2. Generate LLM prompts for work/consumption propensity 3. Update agent’s economic status 4. Periodically conduct mental health assessments 5. Handle UBI policy evaluations