diff --git a/doc/api/v2/config/layer.rst b/doc/api/v2/config/layer.rst
index 154cfe24432f3e43ed724a45273b4a582b45f73d..1efa74ecda4170332d96603ca2253c68468474f9 100644
--- a/doc/api/v2/config/layer.rst
+++ b/doc/api/v2/config/layer.rst
@@ -207,6 +207,11 @@ trans_full_matrix_projection
 Aggregate Layers
 ================
 
+AggregateLevel
+--------------
+..  autoclass:: paddle.v2.layer.AggregateLevel
+    :noindex:
+
 ..  _api_v2.layer_pooling:
 
 pooling
@@ -248,6 +253,11 @@ block_expand
 
 ..  _api_v2.layer_expand:
 
+ExpandLevel
+-----------
+..  autoclass:: paddle.v2.layer.ExpandLevel
+    :noindex:
+
 expand
 ------
 ..  autoclass:: paddle.v2.layer.expand
diff --git a/python/paddle/trainer_config_helpers/layers.py b/python/paddle/trainer_config_helpers/layers.py
index 3b6f0270de16627821624dd1266a0a1c089323b0..ec81e1dc3d21d1f16b8ad2988793074b838b8d4d 100755
--- a/python/paddle/trainer_config_helpers/layers.py
+++ b/python/paddle/trainer_config_helpers/layers.py
@@ -225,6 +225,24 @@ class LayerType(object):
 
 
 class AggregateLevel(object):
+    """
+    PaddlePaddle supports three sequence types:
+
+    - :code:`SequenceType.NO_SEQUENCE` means the sample is not a sequence.
+    - :code:`SequenceType.SEQUENCE` means the sample is a sequence.
+    - :code:`SequenceType.SUB_SEQUENCE` means the sample is a nested sequence,
+      each timestep of which is also a sequence.
+
+    Accordingly, AggregateLevel supports two modes:
+
+    - :code:`AggregateLevel.EACH_TIMESTEP` means the aggregation acts on each
+      timestep of a sequence, both :code:`SUB_SEQUENCE` and :code:`SEQUENCE` will
+      be aggregated to :code:`NO_SEQUENCE`.
+
+    - :code:`AggregateLevel.EACH_SEQUENCE` means the aggregation acts on each
+      sequence of a nested sequence, :code:`SUB_SEQUENCE` will be aggregated to
+      :code:`SEQUENCE`.
+    """
     EACH_TIMESTEP = 'non-seq'
     EACH_SEQUENCE = 'seq'
 
@@ -1454,6 +1472,19 @@ def first_seq(input,
 
 
 class ExpandLevel(object):
+    """
+    Please refer to AggregateLevel first.
+
+    ExpandLevel supports two modes:
+
+    - :code:`ExpandLevel.FROM_TIMESTEP` means the expandation acts on each
+      timestep of a sequence, :code:`NO_SEQUENCE` will be expanded to
+      :code:`SEQUENCE` or :code:`SUB_SEQUENCE`.
+
+    - :code:`ExpandLevel.FROM_SEQUENCE` means the expandation acts on each
+      sequence of a nested sequence, :code:`SEQUENCE` will be expanded to
+      :code:`SUB_SEQUENCE`.
+    """
     FROM_TIMESTEP = AggregateLevel.EACH_TIMESTEP
     FROM_SEQUENCE = AggregateLevel.EACH_SEQUENCE
 
diff --git a/python/paddle/v2/layer.py b/python/paddle/v2/layer.py
index 89cca7acd34b8dea0572169338649b5e9ff6536a..3d9caeec5897fcd5b9e084aff496d150efee2066 100644
--- a/python/paddle/v2/layer.py
+++ b/python/paddle/v2/layer.py
@@ -404,8 +404,8 @@ class RecurrentLayerOutput(Layer):
 LayerV2 = Layer
 data = DataLayerV2
 data.__name__ = 'data'
-AggregateLevel = conf_helps.layers.AggregateLevel
-ExpandLevel = conf_helps.layers.ExpandLevel
+AggregateLevel = conf_helps.AggregateLevel
+ExpandLevel = conf_helps.ExpandLevel
 memory = MemoryV2
 memory.__name__ = 'memory'
 memory.__doc__ = conf_helps.memory.__doc__