agentsociety.cityagent.blocks.economy_block¶
Module Contents¶
Classes¶
Handles work-related economic activities and time tracking. |
|
Manages consumption behavior and budget constraints. |
|
Fallback block for non-economic/non-specified activities. |
|
Orchestrates economic activities through specialized sub-blocks. |
|
Manages monthly economic planning and mental health assessment. |
Functions¶
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.BlockHandles 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.BlockManages 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.BlockFallback 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
- 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.BlockOrchestrates 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.BlockManages 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