# {py:mod}`simvx.core.ai.brain` ```{py:module} simvx.core.ai.brain ``` ```{autodoc2-docstring} simvx.core.ai.brain :allowtitles: ``` ## Module Contents ### Classes ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`ActionResult ` - ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult :summary: ``` * - {py:obj}`AIContext ` - ```{autodoc2-docstring} simvx.core.ai.brain.AIContext :summary: ``` * - {py:obj}`Action ` - ```{autodoc2-docstring} simvx.core.ai.brain.Action :summary: ``` * - {py:obj}`Brain ` - ```{autodoc2-docstring} simvx.core.ai.brain.Brain :summary: ``` ```` ### Data ````{list-table} :class: autosummary longtable :align: left * - {py:obj}`LAST_RESULT_KEY ` - ```{autodoc2-docstring} simvx.core.ai.brain.LAST_RESULT_KEY :summary: ``` ```` ### API ````{py:data} LAST_RESULT_KEY :canonical: simvx.core.ai.brain.LAST_RESULT_KEY :value: > 'last_action_result' ```{autodoc2-docstring} simvx.core.ai.brain.LAST_RESULT_KEY ``` ```` `````{py:class} ActionResult :canonical: simvx.core.ai.brain.ActionResult ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult ``` ````{py:attribute} ok :canonical: simvx.core.ai.brain.ActionResult.ok :type: bool :value: > None ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult.ok ``` ```` ````{py:attribute} message :canonical: simvx.core.ai.brain.ActionResult.message :type: str :value: ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult.message ``` ```` ````{py:attribute} data :canonical: simvx.core.ai.brain.ActionResult.data :type: typing.Any :value: > None ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult.data ``` ```` ````{py:method} success(message: str = '', data: typing.Any = None) -> simvx.core.ai.brain.ActionResult :canonical: simvx.core.ai.brain.ActionResult.success :classmethod: ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult.success ``` ```` ````{py:method} failure(message: str = '', data: typing.Any = None) -> simvx.core.ai.brain.ActionResult :canonical: simvx.core.ai.brain.ActionResult.failure :classmethod: ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult.failure ``` ```` ````{py:method} __bool__() -> bool :canonical: simvx.core.ai.brain.ActionResult.__bool__ ```{autodoc2-docstring} simvx.core.ai.brain.ActionResult.__bool__ ``` ```` ````` `````{py:class} AIContext :canonical: simvx.core.ai.brain.AIContext ```{autodoc2-docstring} simvx.core.ai.brain.AIContext ``` ````{py:attribute} agent :canonical: simvx.core.ai.brain.AIContext.agent :type: typing.Any :value: > None ```{autodoc2-docstring} simvx.core.ai.brain.AIContext.agent ``` ```` ````{py:attribute} blackboard :canonical: simvx.core.ai.brain.AIContext.blackboard :type: simvx.core.ai.blackboard.Blackboard :value: > 'field(...)' ```{autodoc2-docstring} simvx.core.ai.brain.AIContext.blackboard ``` ```` ````{py:attribute} dt :canonical: simvx.core.ai.brain.AIContext.dt :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.ai.brain.AIContext.dt ``` ```` ````{py:attribute} now :canonical: simvx.core.ai.brain.AIContext.now :type: float :value: > 0.0 ```{autodoc2-docstring} simvx.core.ai.brain.AIContext.now ``` ```` ````{py:attribute} world :canonical: simvx.core.ai.brain.AIContext.world :type: typing.Any :value: > None ```{autodoc2-docstring} simvx.core.ai.brain.AIContext.world ``` ```` ````` `````{py:class} Action :canonical: simvx.core.ai.brain.Action Bases: {py:obj}`abc.ABC` ```{autodoc2-docstring} simvx.core.ai.brain.Action ``` ````{py:method} execute(ctx: simvx.core.ai.brain.AIContext) -> simvx.core.ai.brain.ActionResult :canonical: simvx.core.ai.brain.Action.execute :abstractmethod: ```{autodoc2-docstring} simvx.core.ai.brain.Action.execute ``` ```` ````{py:attribute} __slots__ :canonical: simvx.core.ai.brain.Action.__slots__ :value: > () ```` ````` `````{py:class} Brain :canonical: simvx.core.ai.brain.Brain Bases: {py:obj}`abc.ABC` ```{autodoc2-docstring} simvx.core.ai.brain.Brain ``` ````{py:attribute} perception :canonical: simvx.core.ai.brain.Brain.perception :type: simvx.core.ai.sensor.Perception | None :value: > None ```{autodoc2-docstring} simvx.core.ai.brain.Brain.perception ``` ```` ````{py:method} perceive(ctx: simvx.core.ai.brain.AIContext) -> None :canonical: simvx.core.ai.brain.Brain.perceive ```{autodoc2-docstring} simvx.core.ai.brain.Brain.perceive ``` ```` ````{py:method} decide(ctx: simvx.core.ai.brain.AIContext) -> simvx.core.ai.brain.Action | None :canonical: simvx.core.ai.brain.Brain.decide :abstractmethod: ```{autodoc2-docstring} simvx.core.ai.brain.Brain.decide ``` ```` ````{py:method} act(action: simvx.core.ai.brain.Action, ctx: simvx.core.ai.brain.AIContext) -> simvx.core.ai.brain.ActionResult :canonical: simvx.core.ai.brain.Brain.act ```{autodoc2-docstring} simvx.core.ai.brain.Brain.act ``` ```` ````{py:method} tick(ctx: simvx.core.ai.brain.AIContext) -> simvx.core.ai.brain.ActionResult | None :canonical: simvx.core.ai.brain.Brain.tick ```{autodoc2-docstring} simvx.core.ai.brain.Brain.tick ``` ```` ````{py:attribute} __slots__ :canonical: simvx.core.ai.brain.Brain.__slots__ :value: > () ```` `````