code: def startTask(logger=None, action_type=u"", _serializers=None, **fields):
      
      action = Action(
          logger,
          unicode(uuid4()),
          TaskLevel(level=[]),
          action_type,
          _serializers)
      action._start(fields)
      return action
docs: Like L{action}, but creates a new top-level L{Action} with no parent.
  
      @param logger: The L{eliot.ILogger} to which to write messages, or
          C{None} to use the default one.
  
      @param action_type: The type of this action,
          e.g. C{"yourapp:subsystem:dosomething"}.
  
      @param _serializers: Either a L{eliot._validation._ActionSerializers}
          instance or C{None}. In the latter case no validation or serialization
          will be done for messages generated by the L{Action}.
  
      @param fields: Additional fields to add to the start message.
  
      @return: A new L{Action}.