How ab-ce/abce works
abcEconomics is a Python platform for agent-based economic simulations. A modeler creates a Simulation and agent groups, advances rounds, and invokes agent actions; agents use platform primitives to trade goods, produce or consume, communicate, and fulfill contracts. Scheduling can be single- or multiprocess, with messages exchanged between agents and simulation data sent to logging. README-level production and consumption capabilities are represented, but their detailed implementations were not sampled; links to them are therefore limited to documented platform behavior.
Main entry points: agent.py Agent base · __init__.py Simulation · group.py Agent groups · inventory.py Goods inventory
Components 20
Simulation control
- Simulation
abcEconomics/__init__.py - Agent groups
abcEconomics/group.py - Single scheduler
abcEconomics/scheduler/singleprocess.py - Multiprocess scheduler
abcEconomics/scheduler/multiprocess.py
Agents and economy
- Agent base
abcEconomics/agent.py - Firm archetype
abcEconomics/agents/firm.py - Household archetype
abcEconomics/agents/household.py - Goods agents
abcEconomics/agents/goods.py - Goods inventory
abcEconomics/inventory.py - Expiring goods
abcEconomics/expiringgood.py
Exchange and communication
- Trading offers
abcEconomics/agents/trader.py - Agent messaging
abcEconomics/agents/messenger.py - Contracts
abcEconomics/contracts/contracting.py - Flexible contracts
abcEconomics/contracts/flexiblecontracting.py - Contract state
abcEconomics/contracts/contracts.py
Logging and results
- Simulation logger
abcEconomics/logger/logger.py - Database writer
abcEconomics/logger/db.py - SQLite store
abcEconomics/logger/db.py - Log postprocessing
abcEconomics/logger/postprocess.py
Other components
- Modeler
Connections 27
- Modeler → Simulation: creates and configures
- Simulation → Agent groups: builds agents
- Simulation → Single scheduler: selects scheduler
- Simulation → Multiprocess scheduler: selects scheduler
- Agent groups → Single scheduler: dispatches actions
- Agent groups → Multiprocess scheduler: dispatches actions
- Single scheduler → Agent base: runs agent actions
- Multiprocess scheduler → Agent base: runs agent actions
- Agent base → Firm archetype: specializes as
- Agent base → Household archetype: specializes as
- Agent base → Goods agents: specializes as
- Firm archetype → Goods inventory: uses goods state
- Household archetype → Goods inventory: uses goods state
- Goods agents → Goods inventory: uses goods state
- Expiring goods → Goods inventory: extends goods state
- Agent base → Trading offers: can trade via
- Agent base → Agent messaging: can message via
- Trading offers → Agent messaging: sends offer messages
- Agent base → Contracts: can contract via
- Contracts → Agent messaging: sends contract messages
- Flexible contracts → Contract state: uses contract state
- Contracts → Contract state: tracks contracts
- Simulation → Simulation logger: configures logging
- Agent groups → Simulation logger: submits group logs
- Simulation logger → Database writer: writes log data
- Database writer → SQLite store: persists records
- SQLite store → Log postprocessing: provides stored results