Autonomous agent for task/action planning and execution
Project description
ActionGraph
ActionGraph is a symbolic AI agent for generating action plans based on preconditions and effects. This is loosely based on STRIPS approach (https://en.wikipedia.org/wiki/Stanford_Research_Institute_Problem_Solver). State variables are modeled as nodes; the actions represent edges/transitions from one state to another. Dijikstra's shortest path algorithm (A* but without the heuristic cost estimate) is used to generate a feasible, lowest cost plan.
The interfaces for this library are similar to https://github.com/agoose77/GOAP.
Usage:
from action_graph.agent import Agent
from action_graph.action import Action
class Drive(Action):
effects = {"driving": True}
preconditions = {"has_drivers_license": True, "tank_has_gas": True}
class FillGas(Action):
effects = {"tank_has_gas": True}
preconditions = {"has_car": True}
class RentCar(Action):
effects = {"has_car": True}
cost = 100 # dollars
class BuyCar(Action):
effects = {"has_car": True}
preconditions = {}
cost = 10_000 # dollars
if __name__ == "__main__":
world_state = {"has_car": False, "has_drivers_license": True}
goal_state = {"driving": True}
ai = Agent()
actions = [a(ai) for a in Action.__subclasses__()]
ai.load_actions(actions)
print("Initial State:", world_state)
ai.update_state(world_state)
print("Goal State: ", goal_state)
plan = ai.get_plan(goal_state)
# ai.execute_plan(plan)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
action-graph-1.2.4.tar.gz
(8.4 kB
view hashes)
Built Distribution
Close
Hashes for action_graph-1.2.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8b6d5b06bf71be1978b6e3bc22a8abd319a633b9fbc615c0f4b9410f08a42b7 |
|
MD5 | ca30b19c6af8b68c7ecc8bb47688341a |
|
BLAKE2b-256 | caf0e787d9102c7b916b6d2b1a6bb17cafacb7a805224170a2b1c755816310b6 |