{ "schema_version": "1.0", "id": "farm_ecosystem", "name": "Adaptive Farm Ecosystem", "description": "A compact farm world where generic agents coordinate around crops, water, soil health, pollination, and market demand.", "simulation": { "steps": 60, "seed": 7, "scheduler": "sequential", "activation": "sequential", "collect_history": true, "metadata": { "example": true, "domain": "farm" } }, "space": { "dimensions": 2, "bounds": [ [ 0, 10 ], [ 0, 10 ] ], "toroidal": false, "enforce_bounds": true, "metadata": { "layout": "small_demo_field" } }, "agents": [ { "id": "farmer_1", "type": "farmer", "position": [ 1.5, 2.0 ], "state": { "energy": 10, "credits": 8, "knowledge": 2, "soil_moisture_signal": 0.45, "inventory": { "wood": 3, "tools": 2, "seeds": 4 } }, "memory": { "goals": [ { "id": "sustain_harvest", "description": "Keep crop output high without exhausting the field.", "importance": 3, "score": 3, "duration": 2 }, { "id": "coordinate_workers", "description": "Coordinate pollination, water, and soil stewardship.", "importance": 2, "score": 2, "duration": 1 } ], "known_options": { "composting": { "score": 1.2, "soil_health": 0.8 }, "irrigation": { "score": 1.0, "water_efficiency": 0.7 }, "market_delivery": { "score": 0.8, "credits": 0.6 } }, "relationships": {} }, "goals": [ { "id": "sustain_harvest", "importance": 3, "score": 3 }, { "id": "coordinate_workers", "importance": 2, "score": 2 } ], "behaviors": [ { "name": "remember", "params": { "category": "farm_context", "content": { "note": "The farmer tracks crops, water, soil, and market needs." }, "tags": [ "farm", "initial" ] } }, { "name": "prioritize", "params": { "source_path": "memory.goals", "item_attribute_weights": { "importance": 1.0, "score": 1.0 } } }, { "name": "choose_goal", "params": { "source_path": "memory.latest_priorities.items", "current_goal_path": "state.current_goal" } }, { "name": "evaluate", "params": { "category": "farm_strategy", "candidate_options": [ "composting", "irrigation", "market_delivery" ], "known_options_path": "memory.known_options", "adoption_threshold": 0.8, "write_decision_path": "memory.latest_strategy_decision" } }, { "name": "adopt", "params": { "option_id": "composting", "category": "soil_strategy", "adoption_strength": 0.4, "state_updates_on_adopt": { "soil_practice": "composting" } } }, { "name": "communicate", "params": { "message": "field_status_update", "target_agent_id": "water_manager_1", "max_recipients": 1 } }, { "name": "cooperate", "params": { "target_agent_id": "soil_steward_1", "goal": "sustain_harvest", "effort": 1.0 } }, { "name": "harvest", "params": {} }, { "name": "build", "params": { "structure_id": "storage_shed", "structure_type": "storage", "material_cost": { "wood": 1.0 }, "work_required": 4.0, "work_amount": 1.0, "initial_capacity": 5.0, "initial_durability": 8.0 } } ], "policy": { "type": "rule_policy", "params": { "selection_strategy": "highest_score", "rules": [ { "id": "farmer_choose_goal", "behavior_name": "choose_goal", "score_delta": 5.0, "priority_delta": 2.0 }, { "id": "farmer_prioritize", "behavior_name": "prioritize", "score_delta": 4.0, "priority_delta": 1.0 }, { "id": "farmer_harvest", "behavior_name": "harvest", "conditions": { "state.energy": { "min": 2 } }, "score_delta": 3.0 }, { "id": "farmer_communicate", "behavior_name": "communicate", "score_delta": 2.0 }, { "id": "farmer_cooperate", "behavior_name": "cooperate", "score_delta": 1.5 }, { "id": "farmer_evaluate", "behavior_name": "evaluate", "score_delta": 1.0 }, { "id": "farmer_build", "behavior_name": "build", "conditions": { "state.inventory.wood": { "min": 1 } }, "score_delta": 0.8 }, { "id": "farmer_remember", "behavior_name": "remember", "score_delta": 0.2 }, { "id": "farmer_adopt", "behavior_name": "adopt", "score_delta": 0.1 } ] } }, "alive": true, "metadata": { "role": "coordination", "example_note": "Primary coordinating farm agent." } }, { "id": "pollinator_1", "type": "pollinator", "position": [ 3.0, 7.5 ], "state": { "energy": 8, "credits": 1, "pollination_signal": 0.75, "inventory": { "nectar": 2 } }, "memory": { "goals": [ { "id": "increase_pollination", "description": "Support crop growth by moving information and effort through the field.", "importance": 3, "score": 2.5, "duration": 1 } ], "known_options": { "flower_route": { "score": 1.0 }, "cooperate": { "score": 0.9 } }, "relationships": {} }, "goals": [ { "id": "increase_pollination", "importance": 3, "score": 2.5 } ], "behaviors": [ { "name": "remember", "params": { "category": "pollination_context", "content": { "note": "The pollinator observes flowering resources and nearby agent signals." }, "tags": [ "pollination" ] } }, { "name": "prioritize", "params": { "source_path": "memory.goals" } }, { "name": "choose_goal", "params": { "source_path": "memory.latest_priorities.items", "current_goal_path": "state.current_goal" } }, { "name": "communicate", "params": { "message": "pollination_status", "target_agent_id": "farmer_1", "max_recipients": 1 } }, { "name": "cooperate", "params": { "target_agent_id": "farmer_1", "goal": "sustain_harvest", "effort": 0.8 } }, { "name": "collect", "params": {} }, { "name": "update_belief", "params": { "belief_id": "field_is_flowering", "proposition": "The field currently supports pollination.", "evidence_path": "state.pollination_signal", "learning_rate": 0.25, "write_belief_path": "memory.latest_pollination_belief" } } ], "policy": { "type": "rule_policy", "params": { "selection_strategy": "highest_score", "rules": [ { "behavior_name": "choose_goal", "score_delta": 4.0 }, { "behavior_name": "communicate", "score_delta": 3.0 }, { "behavior_name": "cooperate", "score_delta": 2.0 }, { "behavior_name": "collect", "score_delta": 1.0 }, { "behavior_name": "update_belief", "score_delta": 0.8 }, { "behavior_name": "remember", "score_delta": 0.3 }, { "behavior_name": "prioritize", "score_delta": 0.2 } ] } }, "alive": true, "metadata": { "role": "ecosystem_support" } }, { "id": "soil_steward_1", "type": "soil_steward", "position": [ 5.0, 4.0 ], "state": { "energy": 9, "credits": 2, "soil_health_signal": 0.65, "inventory": { "compost": 5, "tools": 1 } }, "memory": { "goals": [ { "id": "restore_soil", "description": "Preserve soil nutrients and stabilize farm output.", "importance": 3, "score": 3, "duration": 2 } ], "known_options": { "composting": { "score": 1.3, "soil_health": 0.9 }, "cover_crops": { "score": 1.0, "soil_health": 0.8 } }, "relationships": {} }, "goals": [ { "id": "restore_soil", "importance": 3, "score": 3 } ], "behaviors": [ { "name": "remember", "params": { "category": "soil_context", "content": { "note": "The soil steward monitors nutrient depletion and restoration." }, "tags": [ "soil", "nutrients" ] } }, { "name": "prioritize", "params": { "source_path": "memory.goals" } }, { "name": "choose_goal", "params": {} }, { "name": "evaluate", "params": { "category": "soil_strategy", "candidate_options": [ "composting", "cover_crops" ], "known_options_path": "memory.known_options", "adoption_threshold": 0.7 } }, { "name": "adopt", "params": { "option_id": "cover_crops", "category": "soil_strategy", "adoption_strength": 0.3, "state_updates_on_adopt": { "soil_practice": "cover_crops" } } }, { "name": "communicate", "params": { "message": "soil_health_update", "target_agent_id": "farmer_1", "max_recipients": 1 } }, { "name": "cooperate", "params": { "target_agent_id": "farmer_1", "goal": "restore_soil", "effort": 1.0 } }, { "name": "update_belief", "params": { "belief_id": "soil_is_resilient", "proposition": "Soil quality can sustain future harvests.", "evidence_path": "state.soil_health_signal", "learning_rate": 0.2, "write_belief_path": "memory.latest_soil_belief" } } ], "policy": { "type": "rule_policy", "params": { "selection_strategy": "highest_score", "rules": [ { "behavior_name": "choose_goal", "score_delta": 4.0 }, { "behavior_name": "evaluate", "score_delta": 3.0 }, { "behavior_name": "communicate", "score_delta": 2.0 }, { "behavior_name": "cooperate", "score_delta": 1.5 }, { "behavior_name": "update_belief", "score_delta": 1.0 }, { "behavior_name": "adopt", "score_delta": 0.5 }, { "behavior_name": "remember", "score_delta": 0.2 }, { "behavior_name": "prioritize", "score_delta": 0.2 } ] } }, "alive": true, "metadata": { "role": "resource_health" } }, { "id": "water_manager_1", "type": "water_manager", "position": [ 7.5, 2.0 ], "state": { "energy": 9, "credits": 3, "water_pressure_signal": 0.55, "inventory": { "pipes": 3, "tools": 2 } }, "memory": { "goals": [ { "id": "balance_water", "description": "Keep water available without overusing reserves.", "importance": 3, "score": 2.8, "duration": 2 } ], "known_options": { "drip_irrigation": { "score": 1.2, "water_efficiency": 0.9 }, "rationing": { "score": 0.7, "water_efficiency": 0.6 } }, "relationships": {} }, "goals": [ { "id": "balance_water", "importance": 3, "score": 2.8 } ], "behaviors": [ { "name": "remember", "params": { "category": "water_context", "content": { "note": "The water manager observes irrigation pressure and resource levels." }, "tags": [ "water" ] } }, { "name": "prioritize", "params": { "source_path": "memory.goals" } }, { "name": "choose_goal", "params": {} }, { "name": "evaluate", "params": { "category": "water_strategy", "candidate_options": [ "drip_irrigation", "rationing" ], "known_options_path": "memory.known_options", "adoption_threshold": 0.75 } }, { "name": "adopt", "params": { "option_id": "drip_irrigation", "category": "water_strategy", "adoption_strength": 0.4, "state_updates_on_adopt": { "water_practice": "drip_irrigation" } } }, { "name": "communicate", "params": { "message": "water_status_update", "target_agent_id": "farmer_1", "max_recipients": 1 } }, { "name": "cooperate", "params": { "target_agent_id": "farmer_1", "goal": "balance_water", "effort": 1.0 } }, { "name": "build", "params": { "structure_id": "drip_irrigation_line", "structure_type": "irrigation", "material_cost": { "pipes": 1.0 }, "work_required": 5.0, "work_amount": 1.0, "initial_capacity": 4.0, "initial_durability": 6.0 } }, { "name": "update_belief", "params": { "belief_id": "water_supply_is_stable", "proposition": "The farm has enough water pressure for current crops.", "evidence_path": "state.water_pressure_signal", "learning_rate": 0.25, "write_belief_path": "memory.latest_water_belief" } } ], "policy": { "type": "rule_policy", "params": { "selection_strategy": "highest_score", "rules": [ { "behavior_name": "choose_goal", "score_delta": 4.0 }, { "behavior_name": "evaluate", "score_delta": 3.0 }, { "behavior_name": "communicate", "score_delta": 2.0 }, { "behavior_name": "cooperate", "score_delta": 1.5 }, { "behavior_name": "build", "conditions": { "state.inventory.pipes": { "min": 1 } }, "score_delta": 1.0 }, { "behavior_name": "update_belief", "score_delta": 0.8 }, { "behavior_name": "adopt", "score_delta": 0.4 }, { "behavior_name": "remember", "score_delta": 0.2 }, { "behavior_name": "prioritize", "score_delta": 0.2 } ] } }, "alive": true, "metadata": { "role": "infrastructure" } }, { "id": "market_vendor_1", "type": "market_vendor", "position": [ 8.0, 8.0 ], "state": { "energy": 8, "credits": 12, "demand_signal": 0.7, "inventory": { "crates": 4, "produce": 1 } }, "memory": { "goals": [ { "id": "match_market_demand", "description": "Track demand and share price signals with the farm.", "importance": 2, "score": 2.4, "duration": 1 } ], "known_options": { "direct_sales": { "score": 1.0, "credits": 0.9 }, "community_supported_agriculture": { "score": 0.9, "trust": 0.8 } }, "relationships": {} }, "goals": [ { "id": "match_market_demand", "importance": 2, "score": 2.4 } ], "behaviors": [ { "name": "remember", "params": { "category": "market_context", "content": { "note": "The vendor tracks demand and coordinates distribution." }, "tags": [ "market" ] } }, { "name": "prioritize", "params": { "source_path": "memory.goals" } }, { "name": "choose_goal", "params": {} }, { "name": "evaluate", "params": { "category": "market_strategy", "candidate_options": [ "direct_sales", "community_supported_agriculture" ], "known_options_path": "memory.known_options", "adoption_threshold": 0.75 } }, { "name": "communicate", "params": { "message": "market_demand_update", "target_agent_id": "farmer_1", "max_recipients": 1 } }, { "name": "cooperate", "params": { "target_agent_id": "farmer_1", "goal": "match_market_demand", "effort": 0.7 } }, { "name": "collect", "params": {} }, { "name": "update_belief", "params": { "belief_id": "market_demand_is_high", "proposition": "Market demand is strong enough to reward harvest activity.", "evidence_path": "state.demand_signal", "learning_rate": 0.25, "write_belief_path": "memory.latest_market_belief" } } ], "policy": { "type": "rule_policy", "params": { "selection_strategy": "highest_score", "rules": [ { "behavior_name": "choose_goal", "score_delta": 4.0 }, { "behavior_name": "communicate", "score_delta": 3.0 }, { "behavior_name": "evaluate", "score_delta": 2.0 }, { "behavior_name": "cooperate", "score_delta": 1.5 }, { "behavior_name": "collect", "score_delta": 1.0 }, { "behavior_name": "update_belief", "score_delta": 0.8 }, { "behavior_name": "remember", "score_delta": 0.2 }, { "behavior_name": "prioritize", "score_delta": 0.2 } ] } }, "alive": true, "metadata": { "role": "market_signal" } } ], "resources": [ { "id": "crop_patch_1", "type": "crops", "amount": 18, "position": [ 4.0, 5.0 ], "regeneration_rate": 0.4, "max_amount": 30, "metadata": { "renewable": true, "farm_layer": "field" } }, { "id": "water_reserve_1", "type": "water", "amount": 24, "position": [ 7.0, 1.5 ], "regeneration_rate": 0.2, "max_amount": 40, "metadata": { "renewable": true, "farm_layer": "irrigation" } }, { "id": "soil_nutrients_1", "type": "soil_nutrients", "amount": 16, "position": [ 5.0, 4.5 ], "regeneration_rate": 0.1, "max_amount": 25, "metadata": { "renewable": true, "farm_layer": "soil" } }, { "id": "seed_bank_1", "type": "seeds", "amount": 10, "position": [ 2.0, 3.0 ], "regeneration_rate": 0, "max_amount": 20, "metadata": { "renewable": false, "farm_layer": "storage" } }, { "id": "market_demand_1", "type": "market_demand", "amount": 14, "position": [ 8.5, 8.5 ], "regeneration_rate": 0.1, "max_amount": 25, "metadata": { "renewable": true, "farm_layer": "market" } } ], "events": [ { "id": "dry_spell", "name": "dry_spell", "trigger_step": 20, "payload": { "description": "A dry spell increases the importance of water coordination.", "signals": { "water_pressure": -0.2, "soil_moisture": -0.2 } }, "enabled": true, "repeat_interval": null, "target_agent_ids": [ "farmer_1", "water_manager_1", "soil_steward_1" ], "target_resource_ids": [ "water_reserve_1", "soil_nutrients_1" ], "metadata": { "narrative_hint": "Environmental pressure tests coordination." } }, { "id": "market_surge", "name": "market_surge", "trigger_step": 40, "payload": { "description": "Market demand rises, increasing the value of harvest and distribution coordination.", "signals": { "demand": 0.25 } }, "enabled": true, "repeat_interval": null, "target_agent_ids": [ "farmer_1", "market_vendor_1" ], "target_resource_ids": [ "market_demand_1" ], "metadata": { "narrative_hint": "Economic pressure rewards coordination." } } ], "metrics": [ { "name": "diversity", "params": { "collection": "agents", "group_by_path": "type" }, "enabled": true, "metadata": { "display": "Agent type diversity" } }, { "name": "entropy", "params": { "collection": "agents", "value_path": "type" }, "enabled": true, "metadata": { "display": "Agent type entropy" } }, { "name": "stability", "params": { "collection": "agents", "group_by_path": "type" }, "enabled": true, "metadata": { "display": "Population stability" } }, { "name": "interestingness", "params": { "collection": "agents", "group_by_path": "type" }, "enabled": true, "metadata": { "display": "Composite interestingness" } } ], "metadata": { "example": true, "domain": "farm", "created_for": "WorldSmithAI Gradio demo", "design_note": "No farm-specific runtime classes are required. The example uses generic agents, resources, behaviors, policies, metrics, and events." } }