Skip to content

Conversation

@MarcusTantakoun
Copy link
Collaborator

Major L2P Changes:

DomainBuilder

Added:

  • Proper code documentation for each function
  • formalize_constants(): implemented PDDL :constants generation function + syntax validation + string template
  • formalize_functions(): implemented PDDL :functions generation function + syntax validation + string template
  • formalize_domain_spec(): implemented function to extract all domain-level specifications via LLM (i.e. types, constants, predicates, functions) in a single query.
  • generate_requirements(): generates PDDL requirements based off of rest of domain content
  • formalize_pddl_action(extract_new_preds:bool): users can specify in arguments if they want new predicates to be extracted. This fulfills the purpose if predicates are already provided and should not have LLMs generate new ones.

Deleted:

  • self.nl_actions: deleted class variable containing list of PDDL actions in natural language

Modified:

  • self.type_hierarchy: Python type change to list[dict[str,str]] for better formatting – modified other complementary functions such that self.types and self.type_hierarchy are compatible and returns PDDL :types properly
  • Renamed all extraction function names to formalize_... to better capture function purpose
  • Relaxed required arguments for formalize functions (i.e. :types may not be required for a PDDL domain)
  • Modified syntax validator implementation option
  • Modified generate_domain() so that users do not need to format Python-PDDL components into strings before passing into function

TaskBuilder

Added:

  • Proper code documentation for each function

Modified:

  • Renamed all extraction function names to formalize_...
  • Modified syntax validator implementation option
  • Modified generate_task() so that users do not need to format Python-PDDL components into strings before passing into function

FeedbackBuilder

Added:

  • feedback_state(): essentially more robust method of extracting correct feedback from LLM

Deleted:

  • "hybrid" feedback_type: found it was unnecessary and users can integrate both "human" and "llm" feedback if they want to incorporate hybrid pipeline

Modified:

  • FeedbackBuilder class functions do not return newly modified PDDL output. Instead, they only provide string feedback to the original output and users must pass its feedback to prompt the LLM to re-generate again. This allows more flexibility to the user what to do with the feedback provided instead of just re-prompting the LLM to re-generate its output all in a single function.
  • LLM must pass specific header JUDGMENT as separate box for final answer – prevents mistaken keyword usage in remaining LLM output.

l2p/utils

  • organized all functions to designated modules (i.e. pddl_format, pddl_parser, pddl_validator)
  • integrated proper header-content boxes to parse LLM output more effectively
  • relaxed required parse try-catch failure to returning empty content for specific parsing function – so that the pipeline does not completely halt

l2p/utils/syntax_validator.py

  • complete refactor system of using SyntaxValidator functions; users must pass specific function as string (in list) for error_types into formalization functions which triggers the function invoked.
  • integrated all simple syntax validation for new formalization functions (i.e. formalize_functions(), formalize_constants())
  • Implemented more simple syntax validator functions that I caught during experimentations
  • Added more edge cases for validate_pddl_usage() such that it also supports numeric-fluent and ADL components usage

l2p/llm

  • deleted llm_builder.py and split up class contents into respective modules
  • integrated yaml file configuration in l2p/llm/utils (containing YAML model configuration customization and respective model templates)

Meta Changes:

  • Completed test cases for DomainBuilder, TaskBuilder, and SyntaxValidator classes
  • Refactored paper recreation code with updated library + README.md usage code
  • Relocated L2P /docs to separate repo to host GitHub Pages site + updated survey paper and paper newsletter

Marcus Tantakoun and others added 30 commits May 2, 2025 12:04
Merging official version to branch
Marcus Tantakoun and others added 28 commits May 21, 2025 09:57
…ave to use feedback to insert it into respective formalization function again. Still have to revise NL2PLAN
…ntax validation for formalize_domain_specs
@haz
Copy link
Collaborator

haz commented Jun 3, 2025

Kinda too big to review through it all...want me to squash + blindly merge?

@haz haz merged commit feae598 into AI-Planning:main Jun 5, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants