A system for managing cultivation of plants includes a database storing information about a plurality of growing beds and a multiplicity of farming agents. Each agent is associated with one growing bed and runs a cultivation program on inputs from a farmer of said associated growing bed and information about said associated growing bed from said database. Each agent enforces user preferences and business rules for said associated growing bed and provides cultivation instructions to said farmer to cultivate its associated growing bed.