diff --git a/aom/aom_external_partition.h b/aom/aom_external_partition.h
index b6ea96e..daf8fe4 100644
--- a/aom/aom_external_partition.h
+++ b/aom/aom_external_partition.h
@@ -81,6 +81,19 @@
  */
 #define SIZE_PRUNE_4_WAY 18
 
+/*!\brief Decision mode of the external partition model.
+ * WHOLE_TREE_DECISION: the external partition model should provide the
+ * whole partition tree for the superblock.
+ *
+ * RECURSIVE_DECISION: the external partition model provides the partition
+ * decision of the current block only. The decision process starts from
+ * the superblock size, down to the smallest block size (4x4) recursively.
+ */
+typedef enum aom_ext_part_decision_mode {
+  WHOLE_TREE_DECISION = 0,
+  RECURSIVE_DECISION = 1,
+} aom_ext_part_decision_mode_t;
+
 /*!\brief Config information sent to the external partition model.
  *
  * For example, the maximum superblock size determined by the sequence header.
@@ -368,6 +381,11 @@
   aom_ext_part_delete_model_fn_t delete_model;
 
   /*!
+   * The decision mode of the model.
+   */
+  aom_ext_part_decision_mode_t decision_mode;
+
+  /*!
    * Private data for the external partition model.
    */
   void *priv;
diff --git a/av1/encoder/external_partition.c b/av1/encoder/external_partition.c
index 542b2bb..79f8b4c 100644
--- a/av1/encoder/external_partition.c
+++ b/av1/encoder/external_partition.c
@@ -91,3 +91,8 @@
   if (status != AOM_EXT_PART_OK) return false;
   return true;
 }
+
+aom_ext_part_decision_mode_t av1_get_ext_part_decision_mode(
+    const ExtPartController *ext_part_controller) {
+  return ext_part_controller->funcs.decision_mode;
+}
diff --git a/av1/encoder/external_partition.h b/av1/encoder/external_partition.h
index 20f03ed..f74973e 100644
--- a/av1/encoder/external_partition.h
+++ b/av1/encoder/external_partition.h
@@ -47,6 +47,9 @@
 bool av1_ext_part_send_features(ExtPartController *ext_part_controller,
                                 const aom_partition_features_t *features);
 
+aom_ext_part_decision_mode_t av1_get_ext_part_decision_mode(
+    const ExtPartController *ext_part_controller);
+
 /*!\endcond */
 #ifdef __cplusplus
 }  // extern "C"
diff --git a/av1/encoder/partition_search.c b/av1/encoder/partition_search.c
index ccdd8e5..8a1e2aa 100644
--- a/av1/encoder/partition_search.c
+++ b/av1/encoder/partition_search.c
@@ -4320,12 +4320,17 @@
                              RD_STATS *best_rd_cost) {
   if (cpi->ext_part_controller.ready) {
     bool valid_search = true;
-    if (ML_PARTITION_WHOLE_TREE_DECISION) {
+    const aom_ext_part_decision_mode_t decision_mode =
+        av1_get_ext_part_decision_mode(&cpi->ext_part_controller);
+    if (decision_mode == WHOLE_TREE_DECISION) {
       valid_search = ml_partition_search_whole_tree(
           cpi, td, tile_data, tp, sms_root, mi_row, mi_col, bsize);
-    } else {
+    } else if (decision_mode == RECURSIVE_DECISION) {
       valid_search = ml_partition_search_partial(
           cpi, td, tile_data, tp, sms_root, mi_row, mi_col, bsize);
+    } else {
+      assert(0 && "Unknown decision mode.");
+      return false;
     }
     if (!valid_search) {
       assert(0 && "Invalid search from ML model, partition search failed.");
diff --git a/test/av1_external_partition_test.cc b/test/av1_external_partition_test.cc
index 45ca847a..20329de 100644
--- a/test/av1_external_partition_test.cc
+++ b/test/av1_external_partition_test.cc
@@ -245,6 +245,7 @@
     if (video->frame() == 0) {
       aom_ext_part_funcs_t ext_part_funcs;
       ext_part_funcs.priv = reinterpret_cast<void *>(&test_data_);
+      ext_part_funcs.decision_mode = WHOLE_TREE_DECISION;
       ext_part_funcs.create_model = ext_part_create_model;
       ext_part_funcs.send_features = ext_part_send_features;
       ext_part_funcs.get_partition_decision =
