langgoap.GoalSpec#

class GoalSpec(conditions=<factory>, policy=<factory>, objectives=None, constraints=<factory>, soft_goals=<factory>, metrics=<factory>, value=1.0)[source]#

Specification of a GOAP goal.

Parameters:
  • conditions (MappingProxyType[str, Any])

  • policy (GoalPolicy)

  • objectives (MappingProxyType[str, ObjectiveDirection] | None)

  • constraints (tuple[ConstraintSpec, ...])

  • soft_goals (tuple[SoftGoal, ...])

  • metrics (tuple['PlanQualityMetric', ...])

  • value (float | Callable[[Mapping[str, Any]], float])

conditions#

Required world state for the goal to be satisfied. Stored as an immutable MappingProxyType.

Type:

MappingProxyType[str, Any]

policy#

GoalPolicy bundling the replanning strategy, multi-goal priority, and replan budget. Defaults to GoalPolicy() (ON_DEVIATION, priority 0, max_replans 10).

Type:

GoalPolicy

objectives#

Optional optimization objectives for the CSP phase. Maps resource/metric name to an ObjectiveDirection. Example: {"cost_usd": Minimize, "quality": Maximize}.

Type:

MappingProxyType[str, ObjectiveDirection] | None

constraints#

Optional hard resource/budget constraints for the CSP phase.

Type:

tuple[ConstraintSpec, …]

soft_goals#

Optional soft (penalty-weighted) goal predicates.

Type:

tuple[SoftGoal, …]

metrics#

Optional plan-quality metrics consumed by the CSP phase.

Type:

tuple[‘PlanQualityMetric’, …]

__init__(conditions=<factory>, policy=<factory>, objectives=None, constraints=<factory>, soft_goals=<factory>, metrics=<factory>, value=1.0)#
Parameters:
  • conditions (MappingProxyType[str, Any])

  • policy (GoalPolicy)

  • objectives (MappingProxyType[str, ObjectiveDirection] | None)

  • constraints (tuple[ConstraintSpec, ...])

  • soft_goals (tuple[SoftGoal, ...])

  • metrics (tuple['PlanQualityMetric', ...])

  • value (float | Callable[[Mapping[str, Any]], float])

Return type:

None

Methods

__init__([conditions, policy, objectives, ...])

from_builder([conditions, builder_output])

Construct a GoalSpec from a BuilderOutput.

per_entity(entity_ids, conditions, *[, mode])

Build a MultiGoal with one GoalSpec per entity.

Attributes

conditions

policy

objectives

constraints

soft_goals

metrics

value

Utility weight consulted by MultiGoal(mode='best_value').