Tasks
To ask GPT-4o to mark water plants as done in your todo list:
# export OPENAI_API_KEY=""
uv run launch_agent.py agent=GPT-4o task_name=mark_water_plants_as_done
task_name specifies the task. Tasks are defined in config/tasks/all_tasks.yaml. For example,
mark_water_plants_as_done:
# Indicates class where reward logic is defined
_target_: open_apps.tasks.tasks.MarkToDoDoneTask
goal: Mark 'Water plants' as done in my todo list.
todo_name: "Water plants"
Adding New Tasks
To add a new task using an existing reward function, simply add a new entry to the config/tasks/all_tasks.yaml:
add_my_special_item_to_todo:
# _target_ defines the class containing the task reward logic
_target_: open_apps.tasks.tasks.AddToDoTask
goal: ENTER YOUR GOAL
todo_name: ENTER TITLE of TODO
is_done: false
You can select this new task by specifying the task_name=add_my_special_item_todo.
New custom tasks
To add a custom task with its own reward logic, create a new class in src/open_apps/tasks/tasks.py.
Your new class should inherit Task and implement a reward function, check_if_task_is_complete, indicating whether the task is complete:
@dataclass
class MyCustomTask(Task):
def check_if_task_is_complete(
self,
initiate_state: dict,
current_state: dict) -> bool:
# we handle providing the initial and current states for you!
# write your custom reward logic
...
Then create a corresponding entry in config/tasks/all_tasks.yaml:
my_custom_task:
_target_: open_apps.tasks.tasks.MyCustomTask
goal: ENTER
Finally, ask your agent to solve the task by specifying task_name=my_custom_task.